如何运行 docker in Circle CI orbs?
How to run docker in Ciricle CI orbs?
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
知道了 运行 我自己。
maven
orb提供了可重复使用的jobs
和commands
,但默认情况下,它使用了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
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
知道了 运行 我自己。
maven
orb提供了可重复使用的jobs
和commands
,但默认情况下,它使用了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