LoginSignup
9
3

More than 1 year has passed since last update.

docker-compose up コマンドでコンテナを生成、起動させたいけど、ERRORがでて起動しない。(gitのバージョン修正で解決)

Last updated at Posted at 2022-04-16

INDEX
1. やりたいことを確認する。
2. 課題(エラーの状況、不明点、エラーログ)を確認する。
3. 調査する(ググる、ドキュメントを読む)
4. 調査結果からの考察、対策を実行する。
5. その他調べたこと参考文献

1. やりたいことを確認する。

  • docker-compose up コマンドでコンテナを生成、起動したい。
  • 学習のため、この記事にアウトプットするサンプルアプリを作成しているところ。

  • 該当のDockerfile(PHPのコンテナ)は、以下の内容。
docker/php/Dockerfile
FROM smaregi/php:7.4.19-fpm-alpine3.13 AS php-base

ENV TZ=Asia/Tokyo \
    COMPOSER_ALLOW_SUPERUSER=1

RUN set -xe \
    && apk add --no-cache git=2.30.2-r0 \
    && docker-php-ext-enable xdebug

COPY --from=composer:1 /usr/bin/composer /usr/bin/composer

WORKDIR /var/www/zf-sample

2. 課題(エラーの状況、不明点、エラーログ)を確認する。

  • 実行時(エラー)ログの確認
エラーログ全文
# r_yamate @ mbp in ~/Documents/code/zend-framework-crud-sample on git:feature-create-edit-and-delete x [7:18:09] C:17
$ docker-compose up -d --build
[+] Building 18.4s (22/24)
 => [zend-framework-crud-sample_web internal] load build definition from Dockerfile                                                                                                                        0.0s
 => => transferring dockerfile: 32B                                                                                                                                                                        0.0s
 => [zend-framework-crud-sample_db internal] load build definition from Dockerfile                                                                                                                         0.0s
 => => transferring dockerfile: 306B                                                                                                                                                                       0.0s
 => [zend-framework-crud-sample_app internal] load build definition from Dockerfile                                                                                                                        0.0s
 => => transferring dockerfile: 515B                                                                                                                                                                       0.0s
 => [zend-framework-crud-sample_web internal] load .dockerignore                                                                                                                                           0.1s
 => => transferring context: 2B                                                                                                                                                                            0.0s
 => [zend-framework-crud-sample_app internal] load .dockerignore                                                                                                                                           0.0s
 => => transferring context: 2B                                                                                                                                                                            0.0s
 => [zend-framework-crud-sample_db internal] load .dockerignore                                                                                                                                            0.0s
 => => transferring context: 2B                                                                                                                                                                            0.0s
 => [zend-framework-crud-sample_web internal] load metadata for docker.io/library/nginx:1.18.0-alpine                                                                                                      2.9s
 => [zend-framework-crud-sample_app internal] load metadata for docker.io/smaregi/php:7.4.19-fpm-alpine3.13                                                                                                2.9s
 => [zend-framework-crud-sample_db internal] load metadata for docker.io/mysql/mysql-server:5.6                                                                                                            2.9s
 => [zend-framework-crud-sample_db 1/3] FROM docker.io/mysql/mysql-server:5.6@sha256:4b2262a86a7fa9010ffa8153eb0fe751feba83a0dac9aa594c940726ca01cb99                                                      0.0s
 => [zend-framework-crud-sample_db internal] load build context                                                                                                                                            0.0s
 => => transferring context: 1.38kB                                                                                                                                                                        0.0s
 => [zend-framework-crud-sample_web internal] load build context                                                                                                                                           0.0s
 => => transferring context: 1.11kB                                                                                                                                                                        0.0s
 => [zend-framework-crud-sample_web 1/4] FROM docker.io/library/nginx:1.18.0-alpine@sha256:93baf2ec1bfefd04d29eb070900dd5d79b0f79863653453397e55a5b663a6cb1                                                0.0s
 => CACHED [zend-framework-crud-sample_db 2/3] COPY ./docker/mysql/my.cnf /etc/mysql/conf.d/my.cnf                                                                                                         0.0s
 => CACHED [zend-framework-crud-sample_db 3/3] COPY ./docker/mysql/initdb.d /docker-entrypoint-initdb.d                                                                                                    0.0s
 => [zend-framework-crud-sample_web] exporting to image                                                                                                                                                    0.0s
 => => exporting layers                                                                                                                                                                                    0.0s
 => => writing image sha256:ef21d6df4bf7c3eb9345415348bd6e00b00e8538907f72e64a0ca2f624b5bade                                                                                                               0.0s
 => => naming to docker.io/library/zend-framework-crud-sample_db                                                                                                                                           0.0s
 => => writing image sha256:5ba29250d0c81c2030bc9a07dd66164cc529bf5d0df1c960bfb985586225a40a                                                                                                               0.0s
 => => naming to docker.io/library/zend-framework-crud-sample_web                                                                                                                                          0.0s
 => CANCELED [zend-framework-crud-sample_app] FROM docker.io/library/composer:1                                                                                                                           14.9s
 => => resolve docker.io/library/composer:1                                                                                                                                                                2.6s
 => => sha256:a60f85627e3d0df735c885c9502afee6c4a98aec08c02a0b31ffd6ee36d1d3ed 1.05MB / 1.70MB                                                                                                            12.4s
 => => sha256:89395091f2959844751d9669bf4ffa0d72cae1e7710bd34d692c4a724abcfe20 1.26kB / 1.26kB                                                                                                             0.3s
 => => sha256:54197176698eef20846459d212377c413701772b0a381c43b3f558c58de5cabc 13.02kB / 13.02kB                                                                                                           0.0s
 => => sha256:55d1d3a1f69a3c4cf9e63c542034345861bbd620808bc43bdb25abea303001db 1.65kB / 1.65kB                                                                                                             0.0s
 => => sha256:b19f3ec44036840451de93e8a11f4e75713b7e9fa0a033dfec28b5503ae7a231 3.25kB / 3.25kB                                                                                                             0.0s
 => => sha256:df9b9388f04ad6279a7410b85cedfdcb2208c0a003da7ab5613af71079148139 2.81MB / 2.81MB                                                                                                             4.4s
 => => sha256:2342a00f1dee7a210bf0e6327fce29393f5b0b67b1dbd297a5d39b322c2c61df 267B / 267B                                                                                                                 1.7s
 => => sha256:bff752c21e64ca241a02a1a78ff7700712039a2fa7b20b59ab7b2bce188d5e9c 1.05MB / 11.72MB                                                                                                           12.4s
 => => extracting sha256:df9b9388f04ad6279a7410b85cedfdcb2208c0a003da7ab5613af71079148139                                                                                                                  0.4s
 => => sha256:843ed70f77393571f5ed22d6444e27cedb57e143a5f8c0167996e0e8b0c7fa9f 491B / 491B                                                                                                                 4.7s
 => => sha256:8553ab13fe300a81663a186444a6de092810f9afb97f74313d730747f486f4db 4.19MB / 16.21MB                                                                                                           12.4s
 => CACHED [zend-framework-crud-sample_app php-base 1/4] FROM docker.io/smaregi/php:7.4.19-fpm-alpine3.13@sha256:df94a4d40fefa82b345367602a3d01cb29fc2615e1ac6da295c96fb364817b28                          0.0s
 => CACHED [zend-framework-crud-sample_web 2/4] RUN apk --update --no-cache add git zip unzip                                                                                                              0.0s
 => CACHED [zend-framework-crud-sample_web 3/4] COPY ./docker/nginx/nginx.conf /etc/nginx/conf.d/default.conf                                                                                              0.0s
 => CACHED [zend-framework-crud-sample_web 4/4] WORKDIR /var/www/zf-sample/public                                                                                                                          0.0s
 => ERROR [zend-framework-crud-sample_app php-base 2/4] RUN set -xe     && apk add --no-cache git=2.30.2-r0     && docker-php-ext-enable xdebug                                                           14.9s
------
 > [zend-framework-crud-sample_app php-base 2/4] RUN set -xe     && apk add --no-cache git=2.30.2-r0     && docker-php-ext-enable xdebug:
#0 1.023 + apk add --no-cache 'git=2.30.2-r0'
#0 1.085 fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz
#0 2.122 fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/community/x86_64/APKINDEX.tar.gz
#0 14.81 ERROR: unable to select packages:
#0 14.85   git-2.30.3-r0:
#0 14.85     breaks: world[git=2.30.2-r0]
------
failed to solve: executor failed running [/bin/sh -c set -xe     && apk add --no-cache git=2.30.2-r0     && docker-php-ext-enable xdebug]: exit code: 1

docker-compose.yml には、appコンテナ(php)、webコンテナ(nginx)、dbコンテナ(mysql-server)を記述していて、全て起動していない。

Dockerコンテナの状況確認
$ docker-compose ps
NAME                COMMAND             SERVICE             STATUS              PORTS

実行時ログのターミナルでの文字色はこんな表示。黄色と赤のあたり見ていく。

スクリーンショット 2022-04-13 21.34.04.png

=> CANCELED [zend-framework-crud-sample_app] FROM docker.io/library/composer:1

キャンセルされた?docker.io?知らないから後で一応調べておこう。それよりERRORの赤字が明らかに怪しい。

=> ERROR [zend-framework-crud-sample_app php-base 2/4] RUN set -xe && apk add --no-cache git=2.30.2-r0 && docker-php-ext-enable xdebug

該当箇所は、appコンテナ。

 > [zend-framework-crud-sample_app php-base 2/4] RUN set -xe     && apk add --no-cache git=2.30.2-r0     && docker-php-ext-enable xdebug:
#0 1.023 + apk add --no-cache 'git=2.30.2-r0'
#0 1.085 fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz
#0 2.122 fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/community/x86_64/APKINDEX.tar.gz
#0 14.81 ERROR: unable to select packages:
#0 14.85   git-2.30.3-r0:
#0 14.85     breaks: world[git=2.30.2-r0]
------
failed to solve: executor failed running [/bin/sh -c set -xe     && apk add --no-cache git=2.30.2-r0     && docker-php-ext-enable xdebug]: exit code: 1

gitがなんたらと言われてる。

エラーの後の英語を読んでみよう(DeepL翻訳にぶっ込んでみよう)。

> [zend-framework-crud-sample_app php-base 2/4] RUN set -xe && apk add --no-cache git=2.30.2-r0 && docker-php-ext-enable xdebug:
#0 1.023 + apk add --no-cache 'git=2.30.2-r0'。
#0 1.085 フェッチ https://dl-cdn.alpinelinux.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz
#0 2.122フェッチ https://dl-cdn.alpinelinux.org/alpine/v3.13/community/x86_64/APKINDEX.tar.gz
#0 14.81 error: パッケージを選択できません。
#0 14.85 git-2.30.3-r0:
#0 14.85     breaks: world[git=2.30.2-r0].
------
解決に失敗しました: 実行者の実行に失敗[/bin/sh -c set -xe && apk add --no-cache git=2.30.2-r0 && docker-php-ext-enable xdebug]:終了コード 1
#0 1.023 + apk add --no-cache 'git=2.30.2-r0'

とあって、「パッケージを選択できません」と言われている。

そして、

#0 14.85 git-2.30.3-r0:

とおもむろに記載されている…

git-2.30.3-r0に替えてね、というバージョン変更のメッセージかな?git=2.30.2-r0 は、= だけど大丈夫?(結論、大丈夫だった)

その他、直前で、Docker Desktop を4.7にアップデートしたけど、関係ある?(結論、関係なかった)

3. 調査する(ググる、ドキュメントを読む)

調査① git=2.30.2-r0

なんかLinux用のGitダウンロードのリストのサイトが出てきた。

使用している alpine3.13 に対応する箇所見てみると、

スクリーンショット 2022-04-14 20.49.07.png

ERRORの内容に記載されていた git-2.30.3-r0 と一致する。 Git のバージョンを 2.30.2 から 2.30.3 に変更するということで良さそう。

…ところで、Alpine 3.13ってなんだっけ。

調査② alpine3.13

Alpine Linux (アルパイン・リナックス) は、muslとBusyBoxをベースとしたLinuxディストリビューションである。

Alpine Linuxは独自のパッケージ管理システムとしてAPKを採用している。

apk は Alpine Linux 独自のパッケージ管理システムなのですね。

調査③ apk add --no-cache

apk add ${パッケージ名}

パッケージの追加

  • apk add curl gcc のように複数指定も可能

以下で各種オプションの解説をする

-no-cache

パッケージをキャッシュしなくするオプション

通常、ダウンロードされたパッケージは /var/cache/apk にキャッシュされる

DockerでImageサイズを削減するために RUN rm -rf /var/cache/apk とかしなくて良いので便利

4. 調査結果からの考察、対策を実行する

git=2.30.3-r0 に修正する。

docker/php/Dockerfile
FROM smaregi/php:7.4.19-fpm-alpine3.13 AS php-base

ENV TZ=Asia/Tokyo \
    COMPOSER_ALLOW_SUPERUSER=1

RUN set -xe \
-    && apk add --no-cache git=2.30.2-r0 \
+    && apk add --no-cache git=2.30.3-r0 \
    && docker-php-ext-enable xdebug

COPY --from=composer:1 /usr/bin/composer /usr/bin/composer

WORKDIR /var/www/zf-sample

docker-compose up コマンドでコンテナを生成、起動する。

$ docker-compose up -d --build

スクリーンショット 2022-04-16 8.20.22.png

無事に起動!

スクリーンショット 2022-04-16 8.20.43.png

5. その他調べたこと、参考文献

docker.io はレジストリ Docker Hub 、名前空間(イメージを格納するレポジトリ)は library(公式イメージ)、その中の hello-world イメージの、タグ名 latest(最新)をダウンロード(pull)しました。

9
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
3