Docker学習とWebアプリ構築をChatGPTでやってみた
フロントエンド
20秒ごとにバックエンドからデータを取得して、表示する
Dockerの構成
ダッシュボードの構成として、Dockerを利用する場合はフロントエンド・バックエンド・DBという3つのDockerコンテナの構成が望ましい
DockerはDocker用のフォルダの下に各コンテナのフォルダを作成し、Docker-composeを利用する場合は
Docker用のフォルダのルートフォルダに1つのファイルに全てのコンテナ情報をまとめたdocker-compose.ymlファイルを作成する(ファイル名は固定)
Tokenは安全のためDockerコンテナ起動時に環境変数またはsecret?に組み込むと良い
例:docker run -it --env API_TOKEN=your_token または enviroment.txtに書くなど
DBについて
DBについて、軽量をうたっているものは外部との通信機能が無い(ローカル内で動作を想定)ものが多い
TinyDBは軽量だが一度壊れるとDBの再作成が必要だった。
TinyDBは排他制御(読み込みと書き込みが同時に起こる可能性のある場合)が必要な場合は不適切だと分かった。
今回採用したのはSQLiteで、書き込みと読み込みはAPIを作成してそれを稼働させた。が、連続稼働すると止まってしまう。
コンテナの再起動で直るので、運用しながら原因を調べる
フロントエンドについて
CSSはスタイルを宣言して文字やコンテンツに対してスタイルを適用する
ChatGPTについて
やはり長文(おそらく10-20行)以上のコードは一貫性がないものになりやすい。
多くの要件や相互の関係性について一度に大量に考慮するのは苦手なようなので、要件を分解してコードも短くなるようにする必要がある。
つまり要件や仕様についてはシステム的に理解していて都度細かく伝える必要がある。
いくつかのQAを通じて仕様を固めていき、その仕様をつど伝えるようにするとある程度仕様が収束する。
コードのタブや閉じるコードの未記入については理解できない場合があるので、前述の注意が必要