Slava e988a0ecfe
Set Nginx port from variable (#59)
* Set Nginx port from a variable

* Add latest tag only from tags and default branch
2024-10-18 18:22:12 +03:00

48 lines
932 B
Docker

# Variables
ARG BUILDER=node:22-alpine
ARG IMAGE=nginx:1.27-alpine-slim
ARG APP_USER=root
ARG BUILD_HOME=/app
ARG BUILD_OUT=dist
ARG APP_HOME=${BUILD_HOME}
ARG APP_PORT=${APP_PORT:-80}
ARG NGINX_TEMPLATE=docker/default.conf.template
ARG VITE_CODEX_API_URL=${VITE_CODEX_API_URL:-http://127.0.0.1:8080}
ARG VITE_GEO_IP_URL=${VITE_GEO_IP_URL:-http://127.0.0.1:8080}
# Build
FROM ${BUILDER} AS builder
ARG APP_USER
ARG BUILD_HOME
ARG VITE_CODEX_API_URL
ARG VITE_GEO_IP_URL
WORKDIR ${BUILD_HOME}
COPY --chown=${APP_USER}:${APP_USER} . .
RUN npm install
RUN npm run build
# Create
FROM ${IMAGE}
ARG APP_USER
ARG BUILD_HOME
ARG BUILD_OUT
ARG APP_HOME
ARG APP_PORT
ARG NGINX_TEMPLATE
WORKDIR ${APP_HOME}
RUN mkdir /etc/nginx/templates
COPY ${NGINX_TEMPLATE} /etc/nginx/templates
COPY --chown=${APP_USER}:${APP_USER} --from=builder ${BUILD_HOME}/${BUILD_OUT} .
ENV APP_HOME=${APP_HOME}
ENV APP_PORT=${APP_PORT}
EXPOSE ${APP_PORT}