You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
photovoter_deploy/Dockerfile.photovoter-frontend

40 lines
1.1 KiB

FROM caddy:2-alpine
ARG DOMAIN='gman.me'
# Prepair utils
RUN apk add --no-cache git
# Pull frontend
RUN git clone --depth=1 https://git.iamonlyherefortheicecream.ml/g/photovoter-front.git /srv && \
rm -rf /srv/.git /srv/.gitignore
# Clean up
RUN apk del git
# Configure domain
RUN sed --in-place \
--expression "s#http://127.0.0.1:8000#http://$DOMAIN/api/v1#g" \
--expression "s#http://127.0.0.1:\${serverPort}#http://$DOMAIN/api/v1#g" \
--expression "s#http://127.0.0.1:5500#http://$DOMAIN/photos#g" \
/srv/app.js
# Configure caddy
# follow https://github.com/tiangolo/fastapi/issues/102
# to fix openapi.json hardcode ugliness
RUN echo -e \
"$DOMAIN {\n" \
" root * /srv\n" \
" file_server\n" \
"\n" \
" handle_path /api/v1/* {\n" \
" rewrite * {path}\n" \
" reverse_proxy backend:8000\n" \
" }\n" \
"\n" \
" redir /openapi.json /api/v1/openapi.json permanent\n" \
"}" \
> /etc/caddy/Caddyfile
ONBUILD RUN caddy validate