runtipi/Dockerfile

70 lines
1.7 KiB
Docker

FROM node:18 AS build
RUN npm install node-gyp -g
WORKDIR /common
COPY ./packages/common /common
RUN npm i
RUN npm run build
WORKDIR /api
COPY ./packages/system-api/package.json /api/package.json
RUN npm i
COPY ./packages/system-api /api
RUN npm run build
WORKDIR /dashboard
COPY ./packages/dashboard/package.json /dashboard/package.json
RUN npm i
COPY ./packages/dashboard /dashboard
RUN npm run build
FROM ubuntu:20.04
ARG DEBIAN_FRONTEND=noninteractive
WORKDIR /
# Install docker
RUN apt-get update && apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-release
RUN apt-get install -y \
g++ gcc make python
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
RUN echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
RUN apt-get update
RUN apt-get install -y docker-ce docker-ce-cli containerd.io
# Install node
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
RUN apt-get install -y nodejs
RUN npm install node-gyp -g
# Install docker-compose
RUN curl -L "https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
RUN chmod +x /usr/local/bin/docker-compose
COPY --from=build /common /common
WORKDIR /api
COPY ./packages/system-api/package.json /api/package.json
RUN npm install --omit=dev
WORKDIR /dashboard
COPY ./packages/dashboard/package.json /dashboard/package.json
RUN npm install --omit=dev
COPY --from=build /api /api
COPY --from=build /dashboard /dashboard
WORKDIR /