Merge pull request #116 from sartography/frontend/improve-dockerfile
frontend: avoid redundant steps in Dockerfile
This commit is contained in:
commit
ec47c946d9
|
@ -1,5 +1,5 @@
|
||||||
### STAGE 1: Build ###
|
# Base image to share ENV vars that activate VENV.
|
||||||
FROM quay.io/sartography/node:latest
|
FROM quay.io/sartography/node:latest AS base
|
||||||
|
|
||||||
RUN mkdir /app
|
RUN mkdir /app
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
@ -7,8 +7,10 @@ WORKDIR /app
|
||||||
# this matches total memory on spiffworkflow-demo
|
# this matches total memory on spiffworkflow-demo
|
||||||
ENV NODE_OPTIONS=--max_old_space_size=2048
|
ENV NODE_OPTIONS=--max_old_space_size=2048
|
||||||
|
|
||||||
ADD package.json /app/
|
# Setup image for installing JS dependencies.
|
||||||
ADD package-lock.json /app/
|
FROM base AS setup
|
||||||
|
|
||||||
|
COPY . /app/
|
||||||
|
|
||||||
# npm ci because it respects the lock file.
|
# npm ci because it respects the lock file.
|
||||||
# --ignore-scripts because authors can do bad things in postinstall scripts.
|
# --ignore-scripts because authors can do bad things in postinstall scripts.
|
||||||
|
@ -16,8 +18,17 @@ ADD package-lock.json /app/
|
||||||
# npx can-i-ignore-scripts can check that it's safe to ignore scripts.
|
# npx can-i-ignore-scripts can check that it's safe to ignore scripts.
|
||||||
RUN npm ci --ignore-scripts
|
RUN npm ci --ignore-scripts
|
||||||
|
|
||||||
COPY . /app/
|
|
||||||
|
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
|
# Final image without setup dependencies.
|
||||||
|
FROM base AS final
|
||||||
|
|
||||||
|
LABEL source="https://github.com/sartography/spiff-arena"
|
||||||
|
LABEL description="Software development platform for building, running, and monitoring executable diagrams"
|
||||||
|
|
||||||
|
# WARNING: On localhost frontend assumes backend is one port lowe.
|
||||||
|
ENV PORT0=7001
|
||||||
|
|
||||||
|
COPY --from=setup /app/build /app/build
|
||||||
|
|
||||||
ENTRYPOINT ["/app/bin/boot_server_in_docker"]
|
ENTRYPOINT ["/app/bin/boot_server_in_docker"]
|
||||||
|
|
Loading…
Reference in New Issue