67 lines
1.7 KiB
Docker
67 lines
1.7 KiB
Docker
FROM node:18-buster-slim AS build
|
|
|
|
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 --quiet -g node-gyp
|
|
|
|
# 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 /
|