回答編集履歴

1

追記

2018/06/15 04:21

投稿

退会済みユーザー
test CHANGED
@@ -59,3 +59,79 @@
59
59
  CMD rails s -b 0.0.0.0
60
60
 
61
61
  ```
62
+
63
+
64
+
65
+ # 追記
66
+
67
+ > volumesをコメントアウトすると正常に起動し、ブラウザには「Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock'」というエラーが表示されていますが、これはRailsのエラー画面に見えるので成功しているようです。
68
+
69
+
70
+
71
+ 仰る通りです。これはmysqlに接続すれば治るエラーなので大丈夫です。
72
+
73
+
74
+
75
+ > alpine側にRailsがインストールされているようですがvolumesを外したのとADDをしていないのでローカル側のappフォルダは空の状態です。
76
+
77
+
78
+
79
+ 仰る認識の通りです。
80
+
81
+ コンテナ起動→ボリュームマウントの順序で処理されるのでホスト側ボリュームが空だとコンテナ側も空になり、動きません。
82
+
83
+
84
+
85
+ > RubyMineなどでのリモートデバッグ(?)が前提になるのでしょうか?
86
+
87
+
88
+
89
+ いえ、そんなことはありません。
90
+
91
+
92
+
93
+ 色々方法はあるのですが、要はボリュームマウント時にホスト側にアプリケーションのソースが用意されている必要があるわけです。
94
+
95
+ 私の `Dockerfile` を前提として説明します。
96
+
97
+ まず次のコマンドを順に実行して下さい。
98
+
99
+
100
+
101
+ ```bash
102
+
103
+ docker build -t myrailsimage ./web # webディレクトリにrailsのDockerfileがある場合
104
+
105
+ docker run -d --rm --name myrailscontainer myrailsimage
106
+
107
+ docker cp myrailsimage:/myproject ./myproject
108
+
109
+ docker stop myrailscontainer
110
+
111
+ ```
112
+
113
+
114
+
115
+ これでコンテナのrailsソースをホスト側に持ってこれます。
116
+
117
+
118
+
119
+ `docker-compose.yml` も合わせます。
120
+
121
+
122
+
123
+ ```
124
+
125
+ volumes:
126
+
127
+ - ./myproject:/myproject
128
+
129
+ ```
130
+
131
+
132
+
133
+ この状態で `docker-compose up` を試してみて下さい。
134
+
135
+
136
+
137
+ 私はMacユーザのため、Windowsの場合勝手が違う部分を含む可能性はありますが、ご留意下さい。