我只想用一个命令运行节点应用程序:
npm start
NODE_ENV
nodemon app.js
如果
NODE_ENV=dev
node app.js
NODE_ENV=production
但是在
分离模式
.
到目前为止,我所拥有的:
"start": "docker-compose up --build --force-recreate api",
"api:dev": "nodemon app.js",
"api:prod": "node app.js"
FROM node:16-alpine
WORKDIR /app
COPY package.json .
RUN npm install
ENTRYPOINT ["/bin/sh"]
CMD ["-c", "if [ \"$NODE_ENV\" = \"dev\" ]; then npm run api:dev; else npm run api:prod; fi"]
最后由docker编写文件
api:
restart: always
container_name: my_api
build:
context: .
dockerfile: ./docker/api/Dockerfile
depends_on:
- postgres
ports:
- "${API_PORT}:${API_PORT}"
env_file: .env
networks:
- back
volumes:
- .:/app
- node_modules:/app/node_modules
logging:
options:
max-file: "10"
max-size: "10m"
在哪里/如何设置条件分离模式?我知道我应该使用
-d
docker-compose up
但我希望它是有条件的,基于
节点环境