version: '3'  
  
services:  
nextgptui:  
image: node:18-alpine  
container_name: nextgptui  
privileged: true  
restart: always  
volumes:  
- /etc/timezone:/etc/timezone  
- /etc/localtime:/etc/localtime  
- ./deploy:/app  
- type: bind  
source: /usr/share/zoneinfo/PRC  
target: /usr/share/zoneinfo/PRC  
command: node server.js;  
working_dir: /app  
ports:  
- 8881:3000  
  
nextgptapi:  
image: alpine:latest  
container_name: nextgptapi  
privileged: true  
restart: always  
env_file:  
- ./deploy/api/.env  
environment:  
OPENAI_API_KEY: ${OPENAI_API_KEY}  
DATA_SOURCE: ${DATA_SOURCE}  
SMS_ENABLE: ${SMS_ENABLE}  
SMS_SIGN: ${SMS_SIGN}  
SMS_APPID: ${SMS_APPID}  
SMS_TPL_VALID: ${SMS_TPL_VALID}  
SMS_SECRET_ID: ${SMS_SECRET_ID}  
SMS_SECRET_KEY: ${SMS_SECRET_KEY}  
JWT_SECRET: ${JWT_SECRET}  
JWT_EXPIRE: ${JWT_EXPIRE}  
WX_APP_ID: ${WX_APP_ID}  
WX_MCH_ID: ${WX_MCH_ID}  
WX_MCH_API_V3_KEY: ${WX_MCH_API_V3_KEY}  
WX_NOTIFY_URL: ${WX_NOTIFY_URL}  
WX_MCH_CERTIFICATE_SERIAL_NUMBER: ${WX_MCH_CERTIFICATE_SERIAL_NUMBER}  
WX_MCH_PRIVATE_KEY: ${WX_MCH_PRIVATE_KEY}  
volumes:  
- /etc/timezone:/etc/timezone  
- /etc/localtime:/etc/localtime  
- ./deploy/api:/app  
- type: bind  
source: /usr/share/zoneinfo/PRC  
target: /usr/share/zoneinfo/PRC  
command: ./goapi  
working_dir: /app  
ports:  
- 8088:8088  
extra_hosts:  
- "host.docker.internal:host-gateway"

指定.env文件位置,不指定读取项目目录下的.env文件

env_file:  
- ./deploy/api/.env