WSLからdocker-composeができない
docker-composeは自分でダウンロードしないと動かない。
下記のコマンドを実行しする。
WSL2
$ sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose
$ sudo chmod +x /usr/bin/docker-compose
パーミッションが原因でvolumeがマウントできない
ホストとファイル共有するためにボリュームをマウントしたいが、パーミッションでエラーになる。
失敗例では、docker-composeを用いてjenkinsのコンテナ作成している。
docker-compose.yml
version: "3"
services:
master:
container_name: jenkins-master
# (library/)jenkins:2.60.3(公式)だと依存プラグインの関係でインストールがエラるので、jenkins/jenkins使う
image: jenkins/jenkins:lts
ports:
- 8080:8080
- 5000:5000
volumes:
- ~/jenkins:/var/jenkins_home
次のようなエラーが生じる。
WSL2
$ sudo docker-compose up -d
Creating network "jenkins_default" with the default driver
Pulling master (jenkins/jenkins:lts)...
lts: Pulling from jenkins/jenkins
Digest: sha256:98d3953394a4b9ac65e5e4ab8bc8d8d5bc924716c62b564a113ee57d7736ca0b
Status: Downloaded newer image for jenkins/jenkins:lts
Creating jenkins-master ... error
ERROR: for jenkins-master Cannot start service master: cgroups: cannot find cgroup mount destination: unknown
ERROR: for master Cannot start service master: cgroups: cannot find cgroup mount destination: unknown
ERROR: Encountered errors while bringing up the project.
事象としては、ファイルのアクセス権の問題らしい。
ユーザーを追加することにより回避できるらしい。
参考:https://qiita.com/yohm/items/047b2e68d008ebb0f001
今回はdocker-composeをあきらめて、通常通り起動した。
この方法だとエラーが出ないので、docker-composeと権限が違うらしい。
WSL2
sudo docker run -p 8080:8080 -p 5000:5000 -v ~/jenkins:/var/jenkins_home jenkins/jenkins:lts