Dockerfile
- 自分が作成したファイルは下記となります。このままコピーしても動きません。
FROM alpine:latest
## nginx
RUN apk --update add nginx && rm -rf /var/cache/apk/*
RUN chmod 755 /var/lib/nginx /var/lib/nginx/tmp
RUN mkdir -p /run/nginx
ADD ./frontend/nginx/config.d/default.conf /etc/nginx/conf.d/
## nodejs
RUN apk add --update nodejs nodejs-npm
RUN apk add yarn
## SSL
RUN mkdir -p /etc/letsencrypt/live/www.px-wing.com/
ADD ./frontend/nginx/ssl_key/fullchain.pem /etc/letsencrypt/live/<あなたのドメイン>/
ADD ./frontend/nginx/ssl_key/privkey.pem /etc/letsencrypt/live/<あなたのドメイン>/
## start shell
COPY ./frontend/start.sh /start.sh
RUN chmod +x /start.sh
CMD ["sh", "/start.sh"]
Let's Encryptインストール
- 最後のコマンドを実行するときにnginxが起動してHTTP通信が行えることが成功する条件です。
apk update
apk add certbot
apk add openssl
certbot certonly -n --keep-until-expiring --agree-tos --webroot -w /srv/wwww/src/ -d <あなたのドメイン> -m <メールアドレス>
nginxのdefault.confの設定
server {
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/<あなたのドメイン>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<あなたのドメイン>/privkey.pem;
server_name www.px-wing.com;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 1m;
proxy_connect_timeout 1m;
proxy_pass http://127.0.0.1:3000;
}
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
}
完成
- SSL状態にすることができました。