fix(docker): handle .env file to read frontend vars during build easily (#513)

- Remove api/.env and .env from .dockerignore file
- Add COPY .env .env to Dockerfile to copy .env file to docker build
- Add RUN rm .env to Dockerfile to remove .env file after build
- Remove build args from docker-compose.yml file
This commit is contained in:
Danny Avila 2023-06-13 12:12:27 -04:00 committed by GitHub
parent 9d3e749104
commit 821b507e0e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 13 deletions

View file

@ -1,4 +1,2 @@
**/node_modules **/node_modules
api/.env
.env
client/dist/images client/dist/images

View file

@ -1,22 +1,19 @@
# Base node image # Base node image
FROM node:19-alpine AS node FROM node:19-alpine AS node
COPY . /app COPY . /app
# Copy .env file
COPY .env .env
# Install dependencies # Install dependencies
WORKDIR /app WORKDIR /app
RUN npm ci RUN npm ci
# Frontend variables as build args
ARG VITE_APP_TITLE
ARG VITE_SHOW_GOOGLE_LOGIN_OPTION
# You will need to add your VITE variables to the docker-compose file
ENV VITE_APP_TITLE=$VITE_APP_TITLE
ENV VITE_SHOW_GOOGLE_LOGIN_OPTION=$VITE_SHOW_GOOGLE_LOGIN_OPTION
# React client build # React client build
ENV NODE_OPTIONS="--max-old-space-size=2048" ENV NODE_OPTIONS="--max-old-space-size=2048"
RUN npm run frontend RUN npm run frontend
# Remove .env file after build
RUN rm .env
# Node API setup # Node API setup
EXPOSE 3080 EXPOSE 3080
ENV HOST=0.0.0.0 ENV HOST=0.0.0.0

View file

@ -23,9 +23,6 @@ services:
build: build:
context: . context: .
target: node target: node
args:
VITE_APP_TITLE: LibreChat # default, change to your desired app name
VITE_SHOW_GOOGLE_LOGIN_OPTION: false # default, change to true if you have google auth setup
# image: chatgptclone/app:latest # Uncomment this & comment above to build from docker hub image # image: chatgptclone/app:latest # Uncomment this & comment above to build from docker hub image
restart: always restart: always
# extra_hosts: # if you are running APIs on docker you need access to, you will need to uncomment this line and next # extra_hosts: # if you are running APIs on docker you need access to, you will need to uncomment this line and next