Ocelot-Social/Dockerfile
Robert Schäfer 9d4c1c6e1a CMD and EXPOSE is valid for all docker stages
FYI: @mattwr18 and @ksinkar
I wanted to test cypress with the Travis configuration. I had
to add `command: ...` to the `docker-compose.travis.yml` which I find
quite annoying. So I put CMD and EXPOSE at the top of the Dockerfile,
thus making it a default for all stages including build-and-test.
2019-01-15 01:35:09 +01:00

31 lines
965 B
Docker

FROM node:10-alpine as base
LABEL Description="Web Frontend of the Social Network Human-Connection.org" Vendor="Human-Connection gGmbH" Version="0.0.1" Maintainer="Human-Connection gGmbH (developer@human-connection.org)"
EXPOSE 3000
CMD ["yarn", "run", "start"]
# Expose the app port
ARG BUILD_COMMIT
ENV BUILD_COMMIT=$BUILD_COMMIT
ARG WORKDIR=/nitro-web
RUN mkdir -p $WORKDIR
WORKDIR $WORKDIR
# See: https://github.com/nodejs/docker-node/pull/367#issuecomment-430807898
RUN apk --no-cache add git
COPY . .
FROM base as build-and-test
RUN cp .env.template .env
RUN yarn install --production=false --frozen-lockfile --non-interactive
RUN cd styleguide && yarn install --production=false --frozen-lockfile --non-interactive \
&& cd .. \
&& yarn run styleguide:build
RUN yarn run build
FROM base as production
ENV NODE_ENV=production
COPY --from=build-and-test ./nitro-web/node_modules ./node_modules
COPY --from=build-and-test ./nitro-web/.nuxt ./.nuxt