teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

ソースを修正する例を載せてみました。

2016/10/15 05:13

投稿

suama
suama

スコア1997

answer CHANGED
@@ -15,4 +15,58 @@
15
15
  (停止しているコンテナを起動する際に、GUIからポートを変更したり共有するボリュームを調整したりできます)
16
16
  参考までに、キャプチャをつけておきます。
17
17
 
18
- ![Kitematicでの確認](7e06ac7f9a21f99f5ce2a6661274bc8e.png)
18
+ ![Kitematicでの確認](7e06ac7f9a21f99f5ce2a6661274bc8e.png)
19
+
20
+ ---
21
+
22
+ **追記:アプリケーションのソースの編集について**
23
+
24
+ 面白そうだったのでやってみました...。色々方法があると思いますので、1例として挙げますね。
25
+
26
+ DockerのホストがMacで、イメージを作る際にGitHubから一式ソースを取得していると思います。
27
+
28
+ ```
29
+ $ tree -L 1
30
+ .
31
+ ├── CHANGELOG.md
32
+ ├── Dockerfile
33
+ ├── LICENSE
34
+ ├── README.md
35
+ ├── _VERSION
36
+ ├── build.sh
37
+ ├── config
38
+ ├── docs
39
+ ├── package.json
40
+ ├── src
41
+ ├── tsconfig.json
42
+ ├── tslint.json
43
+ ├── typedoc.json
44
+ └── webpack.config.js
45
+
46
+ 3 directories, 11 files
47
+ ```
48
+
49
+ ここのsrc/がAngularJSのソースになるとおもいます。(まちがってたらすみません)
50
+ また、このDockerのイメージは、ビルド時に同じソースを /var/www というところに持ってきて展開しています。
51
+
52
+ コンテナ側の/var/www/src に当たるところを、Mac側の src/ として共有する形で起動してあげるといいと思います。
53
+
54
+ コンテナに"docker exec"で入って、ソースファイルの変更をwatchするコマンドを発行しておくと、Mac上でお好きなエディタでソースを編集してあげたタイミングでビルドが走って、アプリケーションにも反映されるんじゃないかと思います。
55
+
56
+ 以下、やってみた例です。
57
+ ボリュームをシェアすると、Kitematic側でも確認できます。また、いったんコンテナをGUIから保存しておいて、保存している状態でその他必要に応じてボリュームを追加できたりします。
58
+
59
+ ```
60
+ # まずは起動(ソースのボリュームだけシェア)
61
+ $ docker run --name demo -v ~/work/ng2-admin/src:/var/www/src -d -p 8888:8080 ng2-admin:0.7.0
62
+
63
+ # コンテナ起動したらexecでコンテナに入る
64
+ $ docker exec -it demo /bin/bash
65
+
66
+ # 入った先で watchを起動、更新があるとソースを勝手にビルド
67
+ # npm run watch:dev
68
+ ```
69
+
70
+ ![イメージ説明](96376ca78cebe1edf37254c4e4ca1a66.png)
71
+
72
+ これくらいで、あまり運用とかはわからないのですが、参考になれば....