DockerにAmazon Linuxを入れて、Nginxが動くようにする
はじめに
特に意味はないのですが、AWS Lambdaを作るための環境の一つとして、Dockerを選んでみました。
ということで、Dockerfileを作ってみようと思ったのですが、関係はないのですが、Nginxを入れて、
動いてるのを確かめたい欲求に駆られたのでやってみました。
環境を作る
動作環境
- MacBook Pro(13-inch, 2016, Four Thunderbolt 3 Ports)
- macOS High Sierra 10.13.5
Dockerをインストール
Windowsはこちら
Macはこちら
Dockerfile
こんな感じで書いてみました。
FROM amazonlinux:2017.12.0.20180330
# install packages
RUN yum -y update && yum clean all && \
yum -y install \
wget \
git \
awscli \
openssh \
openssh-server \
tar \
gcc \
make \
zlib-devel \
openssl-devel \
which \
zip \
unzip \
glibc-langpack-ja
# set timezone
RUN ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# install python 3.6.6
ENV HOME /root
ENV PYENV_ROOT $HOME/.pyenv
ENV PATH $PYENV_ROOT/bin:$PATH
RUN git clone https://github.com/yyuu/pyenv.git $HOME/.pyenv
RUN echo 'eval "$(pyenv init -)"' >> ~/.bashrc && \
eval "$(pyenv init -)"
RUN pyenv install 3.6.6 && \
pyenv global 3.6.6
# install nginx
RUN yum install -y http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
RUN yum install -y --enablerepo=nginx nginx
RUN yum swap -y fakesystemd systemd && yum clean all
#RUN service nginx restart
RUN systemctl enable nginx
ENTRYPOINT ["/usr/sbin/nginx", "-g", "daemon off;", "-c", "/etc/nginx/nginx.conf"]
EXPOSE 80
# set LANG
ENV LANG ja_JP.UTF-8
実行する
ビルドしてから、実行する感じになります。
コマンドはこちら
$ docker build -t testimage
$ docker run -d -it -p 8080:80 testimage
※ testimage
は適当な文字を入れてもらってOKです。
※ 今回の例は、Docker側は80ポート、動作させてるOS側は8080ポートを使っています。8080はぶつからないポートにすればOKです。
確認する
ブラウザを立ち上げて、以下のURLを入れてください。
http://localhost:8080
さいごに
結構簡単に作れたので、この前段にロードバランサーを置いて分散させたり、いろんなもので制御したりしてみても面白いかもですね。
思いついたら、ちょっとやってみようかと思います。
Author And Source
この問題について(DockerにAmazon Linuxを入れて、Nginxが動くようにする), 我々は、より多くの情報をここで見つけました https://qiita.com/areaz_/items/4f79a7c0175c7ef20cc0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .