我可以在容器外的 docker compose 中运行 cmd 命令吗?

时间:2021-01-20 17:19:23

标签: docker docker-compose

我有 2 个用于构建 dockerfile 的 docker-compose 文件,我想加入这些 docker-compose 文件

所以,我创建了其他 docker-compose 来上传这两个图像

version: "3.4"

services:
  frontend:
    image: frontend-image
    depends_on:
      - backend
    ports:
      - "3000:80"
    networks:
      - teste-network

  backend:
    image: backend-image
    ports:
      - "5001:80"
    networks:
      - test-network

networks:
  test-network:
    driver: bridge

但是,这个 docker-compose 文件不会构建图像

然后我创建了一个构建这些图像的 bash 命令

bash -c "docker-compose -f ./frontend/docker/docker-compose.yml build 
&& docker-compose -f ./backend/docker/docker-compose.yml build"

我想在启动容器之前运行这个脚本,只需输入 docker-compose up

1 个答案:

答案 0 :(得分:0)

我假设您有 2 个 dockerfile - 一个用于前端,另一个用于后端,其中每个都位于您帖子中的相应文件夹中,即是:

  • frontend/docker/Dockerfile
  • backend/docker/Dockerfile

然后你可以利用 docker-compose 来构建和运行你的图像。您所要做的就是告诉 docker-compose dockerfile 在哪里,您可以使用 build 配置来完成。

version: "3.4"

services:
  frontend:
    image: frontend-image
    build: ./frontend/docker
    depends_on:
      - backend
    ports:
      - "3000:80"
    networks:
      - test-network

  backend:
    image: backend-image
    build: ./backend/docker
    ports:
      - "5001:80"
    networks:
      - test-network

networks:
  test-network:
    driver: bridge

然后运行 ​​docker-compose up frontend 将构建 docker 镜像(如果它们不存在),然后启动它们。