Docker

DockerでApacheのインストールに失敗する場合の対処方法【timezoneやYesの入力で失敗する】

macでLinuxを操作する

こんにちは、フルスタックエンジニアのryuです。

今回の記事では、Dockerのイメージ作成時にApacheのインストールで失敗する場合の対処方法について解説します。DockerでUbuntsを使い、そこにApache2をインストールしようとしたら、timezoneの入力やYesの入力で止まり、ビルドに失敗しました。今回は、Dockerのビルド時の対処方法について解説します。

サーバー構築を実践で身につけるInfraAcademy

※本ページには、プロモーション・アフィリエイトリンクが含まれています

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によるアプリケーション実行環境構築

ABOUT ME
ryu@InfraAcademyというインフラ学習サービス運営
大手企業→上場ベンチャー→スタートアップでエンジニアをしていました。 インフラエンジニア歴10年以上。 Linuxやネットワークの学習ができるサービスInfraAcademyを運営中。
RELATED POST