【问题标题】:How to run docker in Ciricle CI orbs?如何在 Circleci 球体中运行 docker?
【发布时间】:2020-07-07 06:48:23
【问题描述】:

CircleCI 在 2.1 中引入了 orb,我正在尝试将 Circle Ci 配置添加到我的 sample project

但在我的测试代码中,我使用了测试容器来简化集成测试的依赖配置。

提交我的代码时,Circle CI 运行失败。

org.testcontainers.containers.ContainerLaunchException: Container startup failed
Caused by: org.testcontainers.containers.ContainerFetchException: Can't get Docker image: RemoteDockerImage(imageName=mongo:4.0.10, imagePullPolicy=DefaultPullPolicy())
Caused by: java.lang.IllegalStateException: Could not find a valid Docker environment. Please see logs and check configuration

我的 Circle CI 配置。

version: 2.1

orbs:
  maven: circleci/maven@1.0.1
  codecov: codecov/codecov@1.1.0

jobs:
  codecov:
    machine:
      image: ubuntu-1604:201903-01
    steps:
       - codecov/upload

workflows:
  build:
    jobs:
      - maven/test:
          command: "-q verify -Pcoverage"
      - codecov:
          requires:
            - maven/test

【问题讨论】:

    标签: spring maven circleci circleci-2.0


    【解决方案1】:

    自己运行。

    maven orb 提供可重用的jobscommands,但默认情况下,它使用 JDK executor,不提供 Docker 运行时。

    我的解决方案是放弃可重用的工作,并在你自己的工作中重用来自maven orb 的一些命令。

    version: 2.1
    
    orbs:
      maven: circleci/maven@1.0.1
      codecov: codecov/codecov@1.1.0
    executors:
      docker-mongo:
        docker:
          - image: circleci/openjdk:14-jdk-buster
          - image: circleci/mongo:latest
    jobs:
      build:
        executor: docker-mongo
        steps:
          - checkout
          - maven/with_cache:
              steps:
                - run: mvn -q test verify -Pcoverage
          - maven/process_test_results
          - codecov/upload:
              when: on_success
    workflows:
      build:
        jobs:
          - build
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-07
      • 1970-01-01
      相关资源
      最近更新 更多