##Dockerfileの書き方
参考記事
##amazonlinuxをイメージにコンテナを作成
なるべくEC2と同じ環境で作業したいためamazonlinuxでの環境構築を行う
ローカルの作業ディレクトリ> docker run -it amazonlinux
Unable to find image 'amazonlinux:latest' locally
latest: Pulling from library/amazonlinux
85ee02fe1a09: Pull complete
Digest: sha256:2e42b5d170dbb6d54d35b3b64627480de9687b52cfbab2086267a0fd2acd7bef
Status: Downloaded newer image for amazonlinux:latest
bash-4.2# ls -lta
total 60
drwxr-xr-x 5 root root 360 Jul 3 11:32 dev
dr-xr-xr-x 13 root root 0 Jul 3 11:32 sys
dr-xr-xr-x 168 root root 0 Jul 3 11:32 proc
drwxr-xr-x 1 root root 4096 Jul 3 11:32 .
drwxr-xr-x 1 root root 4096 Jul 3 11:32 ..
-rwxr-xr-x 1 root root 0 Jul 3 11:32 .dockerenv
drwxr-xr-x 1 root root 4096 Jul 3 11:32 etc
drwxr-xr-x 2 root root 4096 Jun 17 01:48 run
drwxr-xr-x 18 root root 4096 Jun 17 01:48 var
lrwxrwxrwx 1 root root 7 Jun 17 01:48 bin -> usr/bin
lrwxrwxrwx 1 root root 7 Jun 17 01:48 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Jun 17 01:48 lib64 -> usr/lib64
lrwxrwxrwx 1 root root 8 Jun 17 01:48 sbin -> usr/sbin
drwxr-xr-x 13 root root 4096 Jun 17 01:48 usr
drwxr-xr-x 2 root root 4096 Jun 17 01:48 local
drwxrwxrwt 2 root root 4096 Jun 17 01:48 tmp
dr-xr-xr-x 2 root root 4096 Apr 9 2019 boot
drwxr-xr-x 2 root root 4096 Apr 9 2019 home
drwxr-xr-x 2 root root 4096 Apr 9 2019 media
drwxr-xr-x 2 root root 4096 Apr 9 2019 mnt
drwxr-xr-x 2 root root 4096 Apr 9 2019 opt
dr-xr-x--- 2 root root 4096 Apr 9 2019 root
drwxr-xr-x 2 root root 4096 Apr 9 2019 srv
無事にamazonlinuxをイメージとしてコンテナの起動ができてるはず
nodejsをインストールする
とりあえず下記コマンドを実行
yum update -y
~省略~
Complete!
nodejsのインストールを実施
bash-4.2# yum install nodejs npm
Loaded plugins: ovl, priorities
No package nodejs available.
No package npm available.
Error: Nothing to do
失敗、通常yumではnodejsはインストール出来ない模様
公式に記載されているamazonlinux用の作業を実践
bash-4.2# curl -fsSL https://rpm.nodesource.com/setup_16.x | bash -
## Installing the NodeSource Node.js 16.x repo...
## Inspecting system...
+ rpm -q --whatprovides redhat-release || rpm -q --whatprovides centos-release || rpm -q --whatprovides cloudlinux-release || rpm -q --whatprovides sl-release || rpm -q --whatprovides fedora-release
+ uname -m
## Confirming "el7-x86_64" is supported...
+ curl -sLf -o /dev/null 'https://rpm.nodesource.com/pub_16.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm'
## Downloading release setup RPM...
+ mktemp
+ curl -sL -o '/tmp/tmp.z8z9Q1v7OL' 'https://rpm.nodesource.com/pub_16.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm'
## Installing release setup RPM...
+ rpm -i --nosignature --force '/tmp/tmp.z8z9Q1v7OL'
## Cleaning up...
+ rm -f '/tmp/tmp.z8z9Q1v7OL'
## Checking for existing installations...
+ rpm -qa 'node|npm' | grep -v nodesource
## Run `sudo yum install -y nodejs` to install Node.js 16.x and npm.
## You may also need development tools to build native addons:
sudo yum install gcc-c++ make
## To install the Yarn package manager, run:
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum install yarn
NodeSourceのリポジトリを追加する事で実行可能になる
参考記事
nodejsのインストール作業
bash-4.2# yum install -y nodejs
~省略~
Installed:
nodejs.x86_64 2:16.4.1-1nodesource
Complete!
bash-4.2# node -v
v16.4.1
##Dockerfileへとまとめる
Expressを利用する環境を作成し確認する。
FROM amazonlinux
WORKDIR /usr/src/app
RUN yum update -y && \
curl -fsSL https://rpm.nodesource.com/setup_16.x | bash && \
yum install -y nodejs && \
# Expressの環境構築
cd /usr/src/app && \
npm init -y && \
npm install express --save
COPY . .
EXPOSE 8080
CMD [ "node", "server.js" ]