FROM node:16 as builder WORKDIR /app COPY package.json yarn.lock /app/ COPY src /app/src/ COPY scripts /app/scripts COPY public /app/public COPY vite.config.js index.html embed.html /app/ RUN yarn install RUN yarn build:deployment FROM nginx:1.23.0-alpine as final COPY --from=builder /app/dist /usr/share/nginx/html COPY docker/funkwhale.template /etc/nginx/conf.d/funkwhale.template COPY docker/funkwhale_proxy.conf /etc/nginx/funkwhale_proxy.conf # Allow running as non-root for custom setups RUN mkdir -p /var/log/nginx /var/cache/nginx /var/run/nginx && \ chown -R nginx:nginx /var/log/nginx /var/run/nginx /var/cache/nginx /etc/nginx && \ sed -e 's#/var/run/nginx.pid#/var/run/nginx/nginx.pid#' -i /etc/nginx/nginx.conf CMD ["sh", "-c", "envsubst \"`env | awk -F = '{printf \" $$%s\", $$1}'`\" \ < /etc/nginx/conf.d/funkwhale.template \ > /etc/nginx/conf.d/default.conf \ && cat /etc/nginx/conf.d/default.conf \ && nginx -g 'daemon off;'"] ENV FUNKWHALE_API_HOST=api ENV FUNKWHALE_API_PORT=5000