Browse Source

feat(docker): add PM2_INSTANCES variable and update entrypoint script… (#14083)

Wu Tianwei 2 tháng trước cách đây
mục cha
commit
252d2c425b

+ 1 - 0
docker/docker-compose-template.yaml

@@ -64,6 +64,7 @@ services:
       MARKETPLACE_URL: ${MARKETPLACE_URL:-https://marketplace.dify.ai}
       TOP_K_MAX_VALUE: ${TOP_K_MAX_VALUE:-}
       INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH: ${INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH:-}
+      PM2_INSTANCES: ${PM2_INSTANCES:-2}
 
   # The postgres database.
   db:

+ 1 - 0
docker/docker-compose.yaml

@@ -476,6 +476,7 @@ services:
       MARKETPLACE_URL: ${MARKETPLACE_URL:-https://marketplace.dify.ai}
       TOP_K_MAX_VALUE: ${TOP_K_MAX_VALUE:-}
       INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH: ${INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH:-}
+      PM2_INSTANCES: ${PM2_INSTANCES:-2}
 
   # The postgres database.
   db:

+ 1 - 1
web/Dockerfile

@@ -46,6 +46,7 @@ ENV MARKETPLACE_API_URL=http://127.0.0.1:5001
 ENV MARKETPLACE_URL=http://127.0.0.1:5001
 ENV PORT=3000
 ENV NEXT_TELEMETRY_DISABLED=1
+ENV PM2_INSTANCES=2
 
 # set timezone
 ENV TZ=UTC
@@ -58,7 +59,6 @@ COPY --from=builder /app/web/public ./public
 COPY --from=builder /app/web/.next/standalone ./
 COPY --from=builder /app/web/.next/static ./.next/static
 
-COPY docker/pm2.json ./pm2.json
 COPY docker/entrypoint.sh ./entrypoint.sh
 
 

+ 2 - 0
web/README.md

@@ -70,6 +70,8 @@ If you want to customize the host and port:
 pnpm run start --port=3001 --host=0.0.0.0
 ```
 
+If you want to customize the number of instances launched by PM2, you can configure `PM2_INSTANCES` in `docker-compose.yaml` or `Dockerfile`.
+
 ## Storybook
 
 This project uses [Storybook](https://storybook.js.org/) for UI component development.

+ 1 - 1
web/docker/entrypoint.sh

@@ -28,4 +28,4 @@ export NEXT_PUBLIC_CSP_WHITELIST=${CSP_WHITELIST}
 export NEXT_PUBLIC_TOP_K_MAX_VALUE=${TOP_K_MAX_VALUE}
 export NEXT_PUBLIC_INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH=${INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH}
 
-pm2 start ./pm2.json --no-daemon
+pm2 start /app/web/server.js --name dify-web --cwd /app/web -i ${PM2_INSTANCES} --no-daemon