こんにちは、フルスタックエンジニアのryuです。
今回の記事では、Dockerのイメージ作成時にApacheのインストールで失敗する場合の対処方法について解説します。DockerでUbuntsを使い、そこにApache2をインストールしようとしたら、timezoneの入力やYesの入力で止まり、ビルドに失敗しました。今回は、Dockerのビルド時の対処方法について解説します。
目次
DockerでApacheのインストールに失敗する場合の対処方法
今回の記事では、DockerでApacheのインストールに失敗する場合の対処方法について解説します。Dockerファイルのビルド時、Apacheのインストールで止まってしまいました。
Apacheインストール時に「Yes」の入力と、「timezone」の入力を求められたからです。この2つの対処方法について解説します。
Apacheのインストールに成功するDockerfile
まず、ビルドに成功したDockerfileはこちらになります。
FROM ubuntu
RUN apt-get update -y && \
apt-get install -y tzdata && \
apt-get install -y apache2
EXPOSE 80
CMD ["apachectl", "-D", "FOREGROUND"]
まず、インストール途中に「YES」の入力が求められる場合は、”-y”のオプションを付ける必要があります。
タイムゾーンの選択を求められる場合は、”tzdata”のインストールが必要です。
ビルドに失敗する場合のDockerファイル
ちなみに、ビルドに失敗する場合のDockerファイルはこちらです。
FROM ubuntu
RUN apt-get update && \
apt-get install apache2
EXPOSE 80
CMD ["apachectl", "-D", "FOREGROUND"]
下記のコマンドでビルドを実行すると・・
docker build --tag apacheweb:1.0 .
Apacheのインストール時に[Y/n]の入力が求められて、そこから進まなくなりました。
Apacheのインストール時にyesの入力が求められる場合の対処方法
ここからは、対策についての詳しい解説です。
Apacheのインストール時にyesの入力が求められる場合の対処方法は”-y”オプションを付けることです。
apt-getコマンドに”-y”を付けることで、インストール時に[Y/n]と聞かれたら自動で”yes”と答えます。Dockerfile内でapt-getコマンドを使用する場合は、”-y”オプションを付けておきましょう。
apt-get install -y apache2
apt-getコマンドについてはこちらの記事で詳しく解説しております。
【Linux】apt-getコマンドの使い方解説!Linuxにパッケージを管理する
timezoneの選択が求められる場合の対処方法
timezoneの選択が求められる場合の対処方法は、”tzdata”をインストールすることです。インストールするときは、Apacheより前にインストールしておきましょう。
RUN apt-get update -y && \
apt-get install -y tzdata && \
apt-get install -y apache2
Dockerfileで”&&”を付けておくことで、前のコマンドが完了してから次のコマンドを実行するようにできます。
DockerでApacheのインストールに失敗する場合の対処方法まとめ
今回の記事では、DockerでApacheのインストールに失敗する場合の対処方法を解説しました。まとめると以下のようになります。
- apt-getコマンドに”-y”オプションを付ける
- tzdataをインストールする
当ブログでは、このよなITに関連する知識を発信しているので、興味のある方は是非ご覧ください。
さらにDockerを勉強したい方は、こちらの動画や参考書がオススメです。
ゼロからはじめる Dockerによるアプリケーション実行環境構築