Closed hrsano645 closed 3 years ago
欲しい要件を書いておくと、このぐらいかと思ってます。
dockerで生成したファイルをどうやって保存するかがいまいちわかってないです。docker-composeのボリュームを使う?
多分これができれば、その中で変更したりもできるかと思います。
volumes:
- ".:/work"
Dockerの理解度を深めつつ作業進めてようやく動くようになってきました。
起動は docker-compose up --build
です。実行するとdist
ディレクトリを作り、その中にDockerコンテナ側で生成したdata.json, news.jsonを保持してくれます。(これをやりたいけど理解不足で進んでなかったです
既知の問題としては、ホストOSがLinuxだと生成されたdist
ディレクトリがrootユーザーになってしまいます。cpとかでコピーしちゃえばあんまり気にしなくてもいいかもしれません。
参考:
実行はできるようになりましたが、開発向けのテストはできないので、開発用のDockerfile, docker-composeは合ってもよいかもしれません。(別のissueにしたほうがよさそう)
ホストOSがLinuxのとき、ホスト側で作成したファイルは自分の所有になり、コンテナ内で作成したファイルはDockerfileで指定したユーザー(特に指定しなければroot)の所有になるってことですね。
例えば、docker-compose.ymlでコンテナ実行ユーザーのuid:gidを指定すればよいのですが、下記のようにいろいろやらないとだめですね。 https://qiita.com/cheekykorkind/items/ba912b62d1f59ea1b41e
ここは割り切って、dockerはwindowsユーザー用ということでどうでしょう? Linuxならgit cloneして、Pythonモジュールを仮想環境で入れれば、汚さずにかつ、簡単に実行できるので。
例えば、docker-compose.ymlでコンテナ実行ユーザーのuid:gidを指定すればよいのですが、下記のようにいろいろやらないとだめですね。 https://qiita.com/cheekykorkind/items/ba912b62d1f59ea1b41e
そうですね。dockerの良いところがなくなってしまうなあと悩んでました。
ここは割り切って、dockerはwindowsユーザー用ということでどうでしょう? Linuxならgit cloneして、Pythonモジュールを仮想環境で入れれば、汚さずにかつ、簡単に実行できるので。
その考えで行こうと思います。macとwinで動作して問題なさそうでしたらPR出します。 現状linuxで生成したファイルはcpすれば使えるのでそれほど気にはならないと思いますし。
Docker for Winでの動作確認しました。
(念のためハマったので書いておきますが)Git for Winで改行コードを自動変換(autocrlf)しているときはdocker_bat.shは動かないので、git clone時には git configであらかじめ設定したうえの実行が必要です。
Docker for Macの動作確認ですが、私が持っているMacbook AirがM1で検証してもMac対応とは言いづらいので、Win対応ということのみにしようと思います。
Docker for Macの動作確認ですが、私が持っているMacbook AirがM1で検証してもMac対応とは言いづらいので、Win対応ということのみにしようと思います。
念のためにMacbook Air M1 + Docker Desktop RC 3にて動作確認済みです。
🐞課題の詳細
⛏ 課題の解決方法案