build: update Dockerfile for dynamic env configuration
This commit is contained in:
parent
c68b3f2f7e
commit
657ce4ed40
5 changed files with 66 additions and 14 deletions
|
@ -1,23 +1,47 @@
|
|||
FROM oven/bun:debian AS build
|
||||
# Build stage
|
||||
FROM oven/bun:latest as build
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
RUN apt-get update -y && apt-get install nodejs -y
|
||||
|
||||
ENV NODE_ENV=production
|
||||
|
||||
# Copy package.json and bun.lock
|
||||
COPY package.json bun.lock ./
|
||||
RUN bun install --frozen-lockfile
|
||||
|
||||
# Install dependencies
|
||||
RUN bun install
|
||||
|
||||
# Copy the rest of the app
|
||||
COPY . .
|
||||
|
||||
# Build the app
|
||||
RUN bun run build
|
||||
|
||||
FROM nginx:alpine AS production
|
||||
# Production stage
|
||||
FROM nginx:alpine
|
||||
|
||||
RUN rm /etc/nginx/conf.d/default.conf
|
||||
COPY .docker/casino.conf /etc/nginx/templates/nginx.conf.template
|
||||
COPY .docker/entrypoint.sh /docker-entrypoint.d/40-custom-config-env.sh
|
||||
# Copy custom nginx config if needed
|
||||
# COPY nginx.conf /etc/nginx/conf.d/default.conf
|
||||
|
||||
COPY --from=build /app/dist/casino /usr/share/nginx/html
|
||||
# Copy the build output
|
||||
COPY --from=build /app/dist/browser /usr/share/nginx/html
|
||||
|
||||
# Copy the env.js file
|
||||
COPY --from=build /app/env.js /usr/share/nginx/html/env.js
|
||||
|
||||
# Copy the entrypoint script
|
||||
COPY docker-entrypoint.sh /docker-entrypoint.sh
|
||||
RUN chmod +x /docker-entrypoint.sh
|
||||
|
||||
# Install envsubst
|
||||
RUN apk add --no-cache gettext
|
||||
|
||||
# Update index.html to load env.js before the app
|
||||
RUN sed -i 's/<head>/<head><script src="env.js"><\/script>/' /usr/share/nginx/html/index.html
|
||||
|
||||
# Set environment variables (these are defaults and can be overridden at runtime)
|
||||
ENV STRIPE_KEY="pk_test_51QrePYIvCfqz7ANgMizBorPpVjJ8S6gcaL4yvcMQnVaKyReqcQ6jqaQEF7aDZbDu8rNVsTZrw8ABek4ToxQX7KZe00jpGh8naG"
|
||||
ENV API_URL="/backend"
|
||||
|
||||
EXPOSE 80
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
|
||||
# Use custom entrypoint to replace env vars at runtime
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
Reference in a new issue