mainvisual

さて、railsの開発環境が出来上がったので、デプロイ環境を構築しましょう。 今回は、本番環境にDockerを使用ようと思います。

前回からの続きです。 次回はこちら

本番環境の構成

ドメインは、http://railstutorial.hackerslog.net/とします。 サーバーは1台で構築します。理由は、お金ないから…

データの流れは、このようにします。

Dockerfileの作成

基本的に、Docker公式サイトを参考にしました。

$ git clone https://github.com/k4zzk/raisltutorial.git && cd raisltutorial
$ docker build -t raisltutorial-app .
$ docker run --name raisltutorial-app -d -p 3000:3000 raisltutorial-app

https://<サーバーのip>:3000でアクセス出来ないときは、firewallが働いてる可能性があります。

$ sudo firewall-cmd --list-all                      # 確認一覧
$ sudo firewall-cmd --permanent --add-port=3000/tcp # 3000番ポート開放
$ sudo firewall-cmd --reload                        # 適用

再現

この記事の状況を再現するには、

$ git clone https://github.com/k4zzk/railstutorial.git
$ cd railstutorial
$ git checkout 4da05c608658784c3297949027077cc64fa44465

を実行して下さい。

補足: 調べたこと一覧

Dockerfile 作成参考

nginx proxy

docker loadbalancer

ループバックデバイス

$ docker info | grep -w 'Node Address' | awk '{print $3}'
 WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
160.16.215.174
$ docker run -it busybox /bin/sh
/ # df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/mapper/docker-253:0-67109003-1b1f443859930362b089f5a0adaf6149135ddaea5e4fcc88b7b89a517900e960
                         10.0G     34.1M     10.0G   0% /
tmpfs                   496.3M         0    496.3M   0% /dev
tmpfs                   496.3M         0    496.3M   0% /sys/fs/cgroup
/dev/mapper/centos_tk2--249--34420-root
                         50.0G      8.4G     41.5G  17% /etc/resolv.conf
/dev/mapper/centos_tk2--249--34420-root
                         50.0G      8.4G     41.5G  17% /etc/hostname
/dev/mapper/centos_tk2--249--34420-root
                         50.0G      8.4G     41.5G  17% /etc/hosts
shm                      64.0M         0     64.0M   0% /dev/shm
tmpfs                   496.3M         0    496.3M   0% /proc/kcore
tmpfs                   496.3M         0    496.3M   0% /proc/timer_list
tmpfs                   496.3M         0    496.3M   0% /proc/timer_stats
tmpfs                   496.3M         0    496.3M   0% /proc/sched_debug
tmpfs                   496.3M         0    496.3M   0% /sys/firmware
$ cat /lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target firewalld.service

[Service]
...

alpine linux

core os

comments powered by Disqus