2023-06-16 CircleCI machine executorでDocker volume mount
これにハマっていた。
CircleCIでdocker executorを使っているとDocker volume mountが動かないの罠(ハマった)。machine executor を使えということらしい。 » How can I use Docker volume mounting on CircleCI? https://t.co/ubywo9MWJv
— toshimaru (@toshimaru_e) June 16, 2023
It’s not possible to use Docker volume mounting with the docker executor, but using the machine executor it’s possible to mount local directories to your running Docker containers.
ref. How can I use Docker volume mounting on CircleCI? – CircleCI Support Center
See also. CircleCI上でDockerとファイルをうまくやりとりする - Qiita
config.yml
仕上がったCircleCIの設定ファイルは下記の通り。
machine:
の下に image: ubuntu-2204:2023.04.2
を定義すればOK.
jobs:
build:
machine:
image: ubuntu-2204:2023.04.2
steps:
- checkout
- run: docker compose build
- ...
Available machines
利用可能なmachine image に関しては下記より調べることができる。
Available resource_class
利用可能な resource_classは下記。
- arm.medium
- arm.large
- arm.xlarge
- arm.2xlarge
setup_remote_docker
もともとやろうとしていたのでは、setup_remote_docker
方式。
jobs:
build:
docker:
- image: cimg/base:2022.06
auth:
username: mydockerhub-user
password: $DOCKERHUB_PASSWORD # context / project UI env-var reference
steps:
# ... steps for building/testing app ...
- setup_remote_docker:
version: 20.10.14
ref. Run Docker commands - CircleCI
ただこれだと冒頭に述べたように docker volume mount が機能せず、断念した。
内部的には DOCKER_HOST
を切り替えているようだ。
DOCKER_HOST で全く異なるホストの Docker が指定されているんですな.
CircleCI の setup_remote_docker を設定した時に留意すべきこと 〜 追記 〜 - ようへいの日々精進XP
circleci/docker Orb
circleci/docker で docker のinstallができる。
orbs:
docker: circleci/docker@2.2.0
jobs:
build:
steps:
- ...
- docker/install-docker-tools
- ...