hrsano645 / covid19-gen-datajson-shizuokapref

静岡県版 新型コロナウイルス対策サイトのdata.jsonを生成するスクリプト
1 stars 3 forks source link

Docker動作環境を用意する #49

Closed hrsano645 closed 3 years ago

hrsano645 commented 3 years ago

👏 解決する issue / Resolved Issues

📝 関連する issue / Related Issues

⛏ 変更内容 / Details of Changes

📸 スクリーンショット / Screenshots

Ubuntu 18.04での動作確認

image

Win10 + Docker Desktop での動作確認

image

aktnk commented 3 years ago

動作させてみました。 (結果) 現状のコンテナを使い、WindowsPCから開発しようとすると、 bat.shの実行に必要なものしかないため、開発ができない状態です。 ここが改善されると、もっとよくなると思いました。 (詳細) ・docker-compose up --buildでbat.shを実行することができました→〇

F:\Users\Akira\Documents\project\pr49_2>docker-compose up --build
Creating network "pr49_2_default" with the default driver
Building generator
failed to get console mode for stdout: The handle is invalid.
[+] Building 1.4s (9/9) FINISHED
 => [internal] load build definition from Dockerfile                       0.0s
 => => transferring dockerfile: 32B                                        0.0s
 => [internal] load .dockerignore                                          0.0s
 => => transferring context: 2B                                            0.0s
 => [internal] load metadata for docker.io/library/python:3.8              1.1s
 => [1/4] FROM docker.io/library/python:3.8@sha256:e31b6fa30c3204b2af4f08  0.0s
 => [internal] load build context                                          0.0s
 => => transferring context: 60B                                           0.0s
 => CACHED [2/4] WORKDIR /code                                             0.0s
 => CACHED [3/4] COPY patients.py /code                                    0.0s
 => CACHED [4/4] COPY bat.sh /code                                         0.0s
 => exporting to image                                                     0.0s
 => => exporting layers                                                    0.0s
 => => writing image sha256:b24b47c796e8a7b329f0686876a716e752f5b3724d6ff  0.0s
 => => naming to docker.io/library/pr49_2_generator                        0.0s
Successfully built b24b47c796e8a7b329f0686876a716e752f5b3724d6ff024e3c806b64c91b7a8
Creating covid19-data-generator-shizuokapref ... done
Attaching to covid19-data-generator-shizuokapref
covid19-data-generator-shizuokapref | ===[地域名: ]===
covid19-data-generator-shizuokapref | ===[generate data.json]===
covid19-data-generator-shizuokapref |   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
covid19-data-generator-shizuokapref |                                  Dload  Upload   Total   Spent    Left  Speed
100 12901  100 12901    0     0  56832      0 --:--:-- --:--:-- --:--:-- 56832
covid19-data-generator-shizuokapref |   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
covid19-data-generator-shizuokapref |                                  Dload  Upload   Total   Spent    Left  Speed
100  526k  100  526k    0     0  1571k      0 --:--:-- --:--:-- --:--:-- 1566k
covid19-data-generator-shizuokapref |   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
covid19-data-generator-shizuokapref |                                  Dload  Upload   Total   Spent    Left  Speed
100 11505  100 11505    0     0  63916      0 --:--:-- --:--:-- --:--:-- 63916
covid19-data-generator-shizuokapref |   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
covid19-data-generator-shizuokapref |                                  Dload  Upload   Total   Spent    Left  Speed
100   160  100   160    0     0    833      0 --:--:-- --:--:-- --:--:--   833
covid19-data-generator-shizuokapref exited with code 0

・そこで、patients.pyを修正しテストしようと思いました。 ・コンテナの実行状態を確認すると、bat.shを実行しExitしています。

F:\Users\Akira\Documents\project\pr49_2>docker-compose ps
               Name                      Command      State    Ports
--------------------------------------------------------------------
covid19-data-generator-shizuokapref   bash ./bat.sh   Exit 0

・そのため、docker-compose runコマンドで再度コンテナを起動し、コンテナ内に入ります。 ・テストを実行しようとtestディレクトリに移動しようとしましたが、コンテナ内にはtestディレクトリがありませんでした。→✕

F:\Users\Akira\Documents\project\pr49_2>docker-compose run generator /bin/bash
Creating pr49_2_generator_run ... done
root@86d9cb38600b:/code# ls
bat.sh  dist  patients.py
root@86d9cb38600b:/code#
hrsano645 commented 3 years ago

@aktnk (docker)-compose自体まだよくわかっていないので、手取り足取りな形で申し訳ないです🙏

・そこで、patients.pyを修正しテストしようと思いました。 ・コンテナの実行状態を確認すると、bat.shを実行しExitしています。

patients.pyを修正するためにコンテナに入るのはちょっと面倒ですよね…全体をdocker-composeのvolumesを使ってマウントして、ローカルでの変更をそのままコンテナ上で実行できるようにしてみます。

hrsano645 commented 3 years ago

@aktnk 対応してみました。-> https://github.com/hrsano645/covid19-gen-datajson-shizuokapref/tree/c6989a33bf464696ffbe8bd416ffd286635976f7

venvをDockerfileで作成するようにして、スクリプトの実行やテストの実行も行えるようにしてみました。

また、docker-compose.yml を見直してローカルのファイルをそのままコンテナ側で参照するようにしました。ローカル側で変更してもbuildしなくてよくなるはずです。distディレクトリもやめて、プロジェクト内の直下にjsonファイルが生成されるようにしています。

このDockerfile,docker-compose.yml はnews.json生成のbat.shでも動作できるようにもなってます。それについては #48 でまた言及します。

hrsano645 commented 3 years ago

@aktnk こちらこそお付き合いいただいてありがたかったです!(めちゃくちゃ勉強になりました🙏