2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【環境構築】「Topic nginx1.12 has end-of-support date of 2019-09-20」。Dockerでnginxを使うときには「nginx1」を使う!

Last updated at Posted at 2019-11-09

Docker.png

どうも、たかふみです。
現在、開発環境の構築にdockerを使っています。

webサーバーにnginxを使用しているのですが、buildした際に下記のメッセージが表示されていました。

Topic nginx1.12 has end-of-support date of 2019-09-20
スクリーンショット 2019-11-09 15.04.41.png

ということで、今回はこのサポート終了メッセージを解決します!

■コンテナ構成

webコンテナ : amazonlinux:2(+nginx+PHP)
DBコンテナ : mysql:5.7       

■まず、Dockerfileを見てみる。

現在使用しているDockerfileが下記になります。

FROM amazonlinux:2

RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

RUN amazon-linux-extras install nginx1.12 && \
    amazon-linux-extras install php7.2 && \
    yum -y install zip unzip php-devel php-pear php-mbstring php-xml glibc-langpack-ja npm sudo ccze gcc vim procps libpng-devel git cronie

# RUN npm install -g rtail && pecl install xdebug
RUN pecl install xdebug

# 開発用にcomposerをインストール
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
    php composer-setup.php && mv composer.phar /usr/local/bin/composer

COPY ./etc /etc

# 起動コマンド
CMD bash -c "bash /etc/init.sh && nginx && php-fpm -F"

この中でnginxのインストールをしているのが、下記の部分。

RUN amazon-linux-extras install nginx1.12 && \

この「nginx1.12」のサポートが終了しているとのことです。
ここで amazon-linux-extras とは?

・amazon-linux-extrasとは

Q:Amazon Linux Extras とは何ですか?
Extras は、安定したオペレーティングシステムで新しいバージョンのアプリケーションソフトウェアを利用可能にする Amazon Linux 2 のメカニズムで、2023 年 6 月 30 日までサポートされます。Extras は、OS の安定性を確保しつつ、最新のソフトウェアを利用できるようにするうえで役立ちます。例えば、5 年間サポートされる安定したオペレーティングシステムに MariaDB の新しいバージョンをインストールすることができます。Extras の例には、Ansible 2.4.2、memcached 1.5、nginx 1.12、Postgresql 9.6、MariaDB 10.2、Go 1.9、Redis 4.0、R 3.4、Rust 1.22.1 などがあります。
引用:https://aws.amazon.com/jp/amazon-linux-2/faqs/

AmazonLinux2でソフトウェアを利用したいときに使うコマンドです。
インストールするときは install、ヘルプを見たいときは helpが使えます。

・amazon-linux-extrasを使ってみる。

とりあえず、現在の環境を立ち上げてコンテナの中に入り、
amazon-linux-extras でインストール可能なパッケージの一覧を見てみます。
(amazon-linux-extras list でも可能です。)

$ docker-compose exec web bash // コンテナに入る。
bash-4.2# amazon-linux-extras // 一覧表示。
  0  ansible2                 available    [ =2.4.2  =2.4.6  =2.8 ]
  2  httpd_modules            available    [ =1.0 ]
  3  memcached1.5             available    \
        [ =1.5.1  =1.5.16  =1.5.17 ]
  4 *nginx1.12=latest         enabled      [ =1.12.2 ]
  5  postgresql9.6            available    [ =9.6.6  =9.6.8 ]
  6  postgresql10             available    [ =10 ]
  8  redis4.0                 available    [ =4.0.5  =4.0.10 ]
  9  R3.4                     available    [ =3.4.3 ]
 10  rust1                    available    \
        [ =1.22.1  =1.26.0  =1.26.1  =1.27.2  =1.31.0 ]
 11  vim                      available    [ =8.0 ]
 13  ruby2.4                  available    [ =2.4.2  =2.4.4  =2.4.7 ]
 15  php7.2=latest            enabled      \
        [ =7.2.0  =7.2.4  =7.2.5  =7.2.8  =7.2.11  =7.2.13  =7.2.14
          =7.2.16  =7.2.17  =7.2.19  =7.2.21  =7.2.22  =7.2.23
          =7.2.24 ]
  _  php7.1                   available    \
        [ =7.1.22  =7.1.25  =7.1.27  =7.1.28  =7.1.30  =7.1.31
          =7.1.32  =7.1.33 ]
 17  lamp-mariadb10.2-php7.2  available    \
        [ =10.2.10_7.2.0  =10.2.10_7.2.4  =10.2.10_7.2.5
          =10.2.10_7.2.8  =10.2.10_7.2.11  =10.2.10_7.2.13
          =10.2.10_7.2.14  =10.2.10_7.2.16  =10.2.10_7.2.17
          =10.2.10_7.2.19  =10.2.10_7.2.21  =10.2.10_7.2.22
          =10.2.10_7.2.23  =10.2.10_7.2.24 ]
 18  libreoffice              available    [ =5.0.6.2_15  =5.3.6.1 ]
 19  gimp                     available    [ =2.8.22 ]
 20  docker                   available    \
        [ =17.12.1  =18.03.1  =18.06.1  =18.09.9 ]
 21  mate-desktop1.x          available    [ =1.19.0  =1.20.0 ]
 22  GraphicsMagick1.3        available    [ =1.3.29  =1.3.32 ]
 23  tomcat8.5                available    \
        [ =8.5.31  =8.5.32  =8.5.38  =8.5.40  =8.5.42 ]
 24  epel                     available    [ =7.11 ]
 25  testing                  available    [ =1.0 ]
 26  ecs                      available    [ =stable ]
 27  corretto8                available    \
        [ =1.8.0_192  =1.8.0_202  =1.8.0_212  =1.8.0_222  =1.8.0_232 ]
 28  firecracker              available    [ =0.11 ]
 29  golang1.11               available    \
        [ =1.11.3  =1.11.11  =1.11.13 ]
 30  squid4                   available    [ =4 ]
  _  php7.3                   available    \
        [ =7.3.2  =7.3.3  =7.3.4  =7.3.6  =7.3.8  =7.3.9  =7.3.10
          =7.3.11 ]
 32  lustre2.10               available    [ =2.10.5 ]
 33  java-openjdk11           available    [ =11 ]
 34  lynis                    available    [ =stable ]
 35  kernel-ng                available    [ =stable ]
 36  BCC                      available    [ =0.x ]
 37  mono                     available    [ =5.x ]
 38  nginx1                   available    [ =stable ]
 39  ruby2.6                  available    [ =2.6 ]
 40  mock                     available    [ =stable ]
 41  postgresql11             available    [ =11 ]
* Extra topic has reached end of support.

該当するのは4番目。
ご丁寧に * Extra topic has reached end of support. と書いてあります。

4 *nginx1.12=latest         enabled      [ =1.12.2 ]

「1.12.2がある!きっとこれをインストールすれば解決だ!!」
ということで、Dockerfileを RUN amazon-linux-extras install nginx1.12.2 に修正して、再度buildを実行。

Topic nginx1.12.2 is not found.
スクリーンショット 2019-11-09 15.44.15.png

■解決:nginx1を使う!

調べているときに発見したのがクラスメソッドさんの記事。いつもお世話になってます!

■Amazon Linux 2 ExtrasレポジトリのNginx、トピック名が「nginx1」になりました
https://dev.classmethod.jp/cloud/aws/al2-nginx1-new-extras-topic/

先ほどの amazon-linux-extras を実行した際に、38番にnginx1がありました。

 38  nginx1                   available    [ =stable ]

今後、AmazonLinux2でnginxを使うときには「nginx1」の方を使う必要があります。
RUN amazon-linux-extras install nginx1 に修正してbuildしたところ、メッセージが消えて問題なく動くようになりました。良かった!

■疑問:なぜ、nginx1.12.2は見つからなかったのか。

バージョンを指定しない場合は、デフォルトのバージョンでインストールされます。
引用:https://dev.classmethod.jp/cloud/aws/how-to-work-with-amazon-linux2-amazon-linux-extras/

とのことです。バージョンを指定してインストールする場合、amazon-linux-extras install nginx1.12=1.12.2 とする必要があるようです。

実際、 RUN amazon-linux-extras install nginx1.12 でインストールした環境でnginxのバージョンを確認したところ、nginx 1.12.2が入っていました。バージョンの指定方法を間違えていたんですね。

bash-4.2# nginx -V
nginx version: nginx/1.12.2
built by gcc 7.3.1 20180303 (Red Hat 7.3.1-5) (GCC) 

■まとめ:nginx1を使う。

Amazonlinux2でnginxを使うなら「nginx1」を使うようにしましょう。

また、今回amazon-linux-extras を初めて使いました。
「listでインストール可能なパッケージを確認して、installでインストールする」という流れは今回に限らず、基本だと思うので今後も使っていきたいと思います。

スクリーンショット 2019-11-09 16.40.32.png

参考記事

■Amazon Linux 2のExtras Library(amazon-linux-extras)を使ってみた
https://dev.classmethod.jp/cloud/aws/how-to-work-with-amazon-linux2-amazon-linux-extras/

■Amazon Linux 2 ExtrasレポジトリのNginx、トピック名が「nginx1」になりました
https://dev.classmethod.jp/cloud/aws/al2-nginx1-new-extras-topic/

2
0
0

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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?