質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

531閲覧

マルチステージビルドについて

study_111

総合スコア82

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/07/27 10:05

編集2020/07/28 02:25

Dockerfileに記述するCOPY命令で、マルチステージビルドというものが出来るとのことなのですが、こちらがいまいち分からないです。具体的には、以下のコードになります。

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

Docker-docs-ja公式ドキュメントを参照してみたのですが、いまいち「ビルドステージ」という意味も分かりませんでした。
どなたか、お手数ですがご助言頂けましたら幸いです。

追記です

以下は、Dockerfileの全文になります。こちらのDockerfileはQiita
の記事内で紹介されていた内容のものになります。

FROM php:7.4-fpm-buster SHELL ["/bin/bash", "-oeux", "pipefail", "-c"] # timezone environment ENV TZ=UTC \ # locale LANG=en_US.UTF-8 \ LANGUAGE=en_US:en \ LC_ALL=en_US.UTF-8 \ # composer environment COMPOSER_ALLOW_SUPERUSER=1 \ COMPOSER_HOME=/composer \ # Laravel environment DB_CONNECTION=mysql \ DB_HOST=db \ DB_DATABASE=laravel_local \ DB_USERNAME=phper \ DB_PASSWORD=secret COPY --from=composer:latest /usr/bin/composer /usr/bin/composer RUN apt-get update && \ apt-get -y install git libicu-dev libonig-dev libzip-dev unzip locales && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* && \ locale-gen en_US.UTF-8 && \ localedef -f UTF-8 -i en_US en_US.UTF-8 && \ mkdir /var/run/php-fpm && \ mkdir /var/log/php && \ docker-php-ext-install intl pdo_mysql mbstring zip bcmath && \ composer config -g process-timeout 3600 && \ composer config -g repos.packagist composer https://packagist.jp && \ composer global require hirak/prestissimo COPY ./php-fpm.d/zzz-www.conf /usr/local/etc/php-fpm.d/zzz-www.conf COPY ./php.ini /usr/local/etc/php/php.ini WORKDIR /work/backend

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

元の回答

composer - Docker Hub

上記のイメージ (composer:latest) から
/usr/bin/composer
今ビルドしているイメージの /usr/bin/composer
COPY する、

という意味です。

追記

「usr/bin」というのは、ローカル上(自分のpc上)のパスを指しているのでしょうか?

ここでのパスは、ローカル上ではなく、composer:latest イメージから起動したコンテナ内のパスです

既にcomposer自体は「--from=composer:latest 」でインストールされた後、
実行する為のファイルのみ移動されたといったような形で合っておりますでしょうか...?

composer:latest は composer の実行ファイルを含んだイメージです
そのイメージから実行ファイルをコピーしています

実行ファイルがコピーされているから、
質問に追記させて頂きました Dockerfile 内の「composer config -g process-timeout 3600」などの
composer コマンドが使用出来るといった訳なのでしょうか?

その通りです

投稿2020/07/27 10:12

編集2020/07/28 04:05
y_shinoda

総合スコア3272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

study_111

2020/07/27 14:49

ご回答ありがとうございます。 「composer:latest」の「/usr/bin/composer」の部分がいまいち分からないのですが、「usr/bin」というのは、ローカル上(自分のpc上)のパスを指しているのでしょうか?
y_shinoda

2020/07/27 15:00

回答に追記しました
study_111

2020/07/28 01:12

ご丁寧にありがとうございます。 何度も申し訳ないのですが、「/usr/bin/composer」の「composer」というのは、composerをインストール為の実行ファイルのようなものでしょうか...?
y_shinoda

2020/07/28 01:32

それはcomposerのインストールのための実行ファイルではなく、composer の実行ファイルそのものです
study_111

2020/07/28 01:50

ご返信ありがとうございます。 すみません。質問に記載していなかったのですが「 https://qiita.com/ucan-lab/items/5fc1281cd8076c8ac9f4#comment-b2e3820d2dbd9aebcd69 」こちらのサイトでDockerについて学習していたといった形でした。 「composer の実行ファイル」とのことなのですが、そうなりますと、既にcomposer自体は「--from=composer:latest 」でインストールされた後、実行する為のファイルのみ移動されたといったような形で合っておりますでしょうか...?
y_shinoda

2020/07/28 02:11

回答欄に追記しました
study_111

2020/07/28 02:26

何度もお手数をおかけしてしまい、すみません。 > そのイメージから実行ファイルをコピーしています こちらそうなりますと、実行ファイルがコピーされているから、質問に追記させて頂きましたDockerfile内の「composer config -g process-timeout 3600」などのcomposerコマンドが使用出来るといった訳なのでしょうか? 何度も質問申し訳ないです。
y_shinoda

2020/07/28 04:05

回答に追記しました
study_111

2020/07/28 04:35

何度もありがとうございます。 勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問