summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-ui/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'opendc-web/opendc-web-ui/Dockerfile')
-rw-r--r--opendc-web/opendc-web-ui/Dockerfile26
1 files changed, 16 insertions, 10 deletions
diff --git a/opendc-web/opendc-web-ui/Dockerfile b/opendc-web/opendc-web-ui/Dockerfile
index 86a18a03..15a92068 100644
--- a/opendc-web/opendc-web-ui/Dockerfile
+++ b/opendc-web/opendc-web-ui/Dockerfile
@@ -1,22 +1,28 @@
-FROM node:15 AS staging
+FROM node:16 AS staging
MAINTAINER OpenDC Maintainers <opendc@atlarge-research.com>
# Copy package details
COPY ./package.json ./yarn.lock /opendc/
-RUN cd /opendc && yarn
+RUN cd /opendc && yarn install --frozen-lockfile
# Build frontend
-FROM node:15 AS build
+FROM node:16 AS build
COPY ./ /opendc
COPY --from=staging /opendc/node_modules /opendc/node_modules
RUN cd /opendc/ \
- && export REACT_APP_OAUTH_CLIENT_ID="\\\$REACT_APP_OAUTH_CLIENT_ID" \
+ # Environmental variables that will be substituted during image runtime
+ && export NEXT_PUBLIC_API_BASE_URL="%%NEXT_PUBLIC_API_BASE_URL%%" \
+ NEXT_PUBLIC_SENTRY_DSN="%%NEXT_PUBLIC_SENTRY_DSN%%" \
+ NEXT_PUBLIC_AUTH0_DOMAIN="%%NEXT_PUBLIC_AUTH0_DOMAIN%%" \
+ NEXT_PUBLIC_AUTH0_CLIENT_ID="%%NEXT_PUBLIC_AUTH0_CLIENT_ID%%" \
+ NEXT_PUBLIC_AUTH0_AUDIENCE="%%NEXT_PUBLIC_AUTH0_AUDIENCE%%" \
&& yarn build \
- && mv build/index.html build/index.html.template
+ && yarn cache clean --all \
+ && mv .next .next.template
-# Setup nginx to serve the frontend
-FROM nginx:1.20
-COPY --from=build /opendc/scripts/envsubst-html.sh /docker-entrypoint.d/00-envsubst-html.sh
-COPY --from=build /opendc/build /usr/share/nginx/html
-COPY nginx.conf /etc/nginx/conf.d/default.conf
+
+FROM node:16-slim
+COPY --from=build /opendc /opendc
+WORKDIR /opendc
+CMD ./scripts/envsubst.sh; yarn start