0

我有一个由前端、后端和 mongodb 数据库组成的应用程序,它们中的每一个都停靠在一个容器中。当我使用 docker compose 构建它们时,我的应用程序 (3) 中的图像数量与部件数量一样多。

有没有办法从这 3 个图像构建一个容器,从而构建一个图像?

谢谢

4

2 回答 2

1

如果您想将应用程序作为单个容器运行,您可以编写 Dockerfile。它也会给你一个单一的图像。

于 2018-04-23T12:59:12.880 回答
0

我想如果你真的愿意,你可以这样做。首选方法是为此使用 docker-compose。我建议您创建一个 docker-compose.yml 文件来帮助您进行设置:

nginx->frontend (possibly with server side rendering) -> backend -> mongodb

docker-compose 背后的想法是使用 docker-compose.yml 文件轻松启动并运行该多容器应用程序,然后您可以使用以下命令启动该应用程序:

$ docker-compose up

您可以使用以下内容进行设置:(这是一个假设的 docker-compose.yml 文件,但使用正确的值应该可以工作。如果您有任何问题,请告诉我:

version: '2'
services:
  frontend-container:
    image: frontend:latest
    links:
      - backend-container
    environment:
      - DEBUG=True
    restart: always
    environment:
      - BASE_HOST=http://backend-container:8000/



  backend-container:
    image: nodejs-backend:latest
    links:
      - mongodb
    environment:
      - NODE_ENV=production
      - BASE_HOST=http://django-container:8000/
    restart: always

    mongodb:
        image: mongo:latest
        container_name: "mongodb"
        environment:
          - MONGO_DATA_DIR=/data/db
          - MONGO_LOG_DIR=/dev/null
        volumes:
          - ./data/db:/data/db
        command: mongod --smallfiles --logpath=/dev/null



  nginx-container:
    image: nginx-container-custom-config:latest
    links:
      - frontend-container
    ports:
      - "80:80"
于 2018-04-23T12:34:42.900 回答