obs-portal/frontend/Dockerfile-prod

35 lines
1.1 KiB
Plaintext

#############################################
# Build the frontend AS builder
#############################################
FROM node:14 as builder
WORKDIR /opt/obs/frontend
ADD package.json package-lock.json /opt/obs/frontend/
RUN echo update-notifier=false >> ~/.npmrc
RUN npm ci
ADD tsconfig.json index.html webpack.config.js /opt/obs/frontend/
ADD public/ /opt/obs/frontend/public/
ADD src/ /opt/obs/frontend/src/
# [Optional] Add the URL prefix. It must also be set in the docker-compose.yml
# ENV PUBLIC_URL=/prefix
RUN npm run build
#############################################
# Serve the frontend
#############################################
# Use apache
FROM httpd:2.4
# Enable rewrite_module
RUN sed -i '/LoadModule rewrite_module/s/^#//g' /usr/local/apache2/conf/httpd.conf
# Allow .htaccess within /usr/local/apache2/htdocs
RUN sed -i '/<Directory "\/usr\/local\/apache2\/htdocs">/,/<\/Directory>/ s/AllowOverride None/AllowOverride all/' /usr/local/apache2/conf/httpd.conf
COPY --from=builder /opt/obs/frontend/build /usr/local/apache2/htdocs
COPY apache/.htaccess /usr/local/apache2/htdocs/
RUN chmod -R a+rX /usr/local/apache2/htdocs