如何在一个 CircleCI 配置中进行两个构建?

Vas*_*yov 5 docker circleci docker-compose

在我的 git 存储库中,我有docker-compose.yml和 两个文件夹frontendand backend,每个文件夹都包含它的 Dockerfile。

docker-compose.yml

version: "3.5"

services:
  Django:
    build:
      context: backend
    ...

  react:
    build:
      context: frontend
    depends_on:
      - django
Run Code Online (Sandbox Code Playgroud)

master分支中发现新提交后,如何配置以将它们构建到映像中并将它们一起推送到 docker 集线器?

小智 3

如果您在 Circleci 上构建,则不必从 docker compose 构建。您只需向 Circleci 配置 (.circleci/config.yml) 添加步骤即可构建并推送图像。该文件可能看起来像这样:

version: 2

jobs:

 build:
   docker:
    - image: docker:19.03.5

   working_directory: [YOUR REPO WORKING DIR]

   steps:
    - checkout
    - setup_remote_docker

    - run:
       name: build frontend
       command: docker build -t [FE DOCKER REPO NAME]:tag -f [FE DOCKERFILE PATH] .

    - run:
       name: build backend
       command: docker build -t [BE DOCKER REPO NAME]:tag -f [BE DOCKERFILE PATH] .

    - run:
       name: push frontend
       command: |
         docker login -u $DOCKER_USER -p $DOCKER_PASS
         docker push [FE DOCKER REPO NAME]:tag

    - run:
       name: push backend
       command: |
         docker login -u $DOCKER_USER -p $DOCKER_PASS
         docker push [BE DOCKER REPO NAME]:tag
Run Code Online (Sandbox Code Playgroud)

请注意,您必须将 DOCKER_USER 和 DOCKER_PASS 环境变量添加到 Circleci 构建设置中