代码之家  ›  专栏  ›  技术社区  ›  HRK44

基于npm脚本的Docker compose条件分离

  •  0
  • HRK44  · 技术社区  · 3 年前

    我只想用一个命令运行节点应用程序: 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 但我希望它是有条件的,基于 节点环境

    0 回复  |  直到 3 年前