github.com/resonatecoop/id@v1.1.0-43/Dockerfile (about) 1 ARG RELEASE_TAG=develop 2 ARG API_DOMAIN=api.resonate.coop 3 ARG APP_HOST=https://stream.resonate.coop 4 ARG STATIC_HOSTNAME=dash.resonate.coop 5 ARG API_BASE=/api/v3 6 ARG NODE_ENV=development 7 ARG BUILD_ENV=production 8 9 # Frontend build stage 10 FROM node:18-alpine as builder 11 12 ARG RELEASE_TAG 13 ARG NODE_ENV 14 ARG BUILD_ENV 15 ARG API_DOMAIN 16 ARG API_BASE 17 ARG APP_HOST 18 ARG STATIC_HOSTNAME 19 20 ENV API_DOMAIN $API_DOMAIN 21 ENV NODE_ENV $NODE_ENV 22 ENV API_BASE $API_BASE 23 ENV APP_HOST $APP_HOST 24 ENV STATIC_HOSTNAME $STATIC_HOSTNAME 25 26 WORKDIR /build 27 28 RUN apk --no-cache add git 29 30 RUN cd /build && git clone --branch ${RELEASE_TAG} --single-branch --depth 1 https://github.com/resonatecoop/id 31 32 RUN cd /build/id/frontend && npm install && npm install -g gulp 33 34 ENV NODE_ENV $BUILD_ENV 35 36 RUN cd /build/id/frontend && npm run build 37 38 # Backend build stage 39 FROM golang:latest 40 41 ARG RELEASE_TAG 42 43 RUN mkdir /build 44 45 WORKDIR /build 46 47 RUN export GO111MODULE=on 48 RUN apt-get -y update 49 RUN cd /build && git clone --branch ${RELEASE_TAG} --single-branch --depth 1 https://github.com/resonatecoop/id 50 51 RUN cd id && go build 52 53 EXPOSE 11000 54 55 WORKDIR /build/id 56 57 COPY --from=builder /build/id/data /build/id/data/ 58 COPY --from=builder /build/id/public /build/id/public/ 59 60 ENTRYPOINT ["sh", "docker-entrypoint.sh"]