ローカルの開発環境を作る
開発環境:Windows11
vscode、Docker on Windowsをインストール後、vscodeに以下のExtensionを入れる。

次のようにディレクトリを構成する。

以後、system_○○をVS Code上でReopen in Containerなどを使って実行環境を整備する。
(別に仮想環境でもいいけど、最後はDockerImageにしてデプロイするので)
バックエンド環境のDockerfileを記述する
まずは簡単な環境をビルドして環境を動かしてみるために、Dockerfileを記述

FROM python:3.11-buster
RUN mkdir workspace
WORKDIR /workspace
RUN pip install -U pip
次にdocker-compose.ymlを編集

services:
system-python-apbe:
build: .
volumes:
- ~/workspace/my_dev/pdf_chatbot/docker_dev_env/system_be:/workspace
tty: true
docker-composeにバックエンド、フロント、インフラなどのコンテナの関係などを記述していくため、ネットワークなどの設定(環境変数やプロキシ)はここに書きます。
社内システムの場合はdocker-compose.ymlの中にHTTPS_PROXYなどの環境変数設定が必要になることがあります。
Dockerfileができれば以下のようにコンテナをvscode経由で立ち上げ→接続までやってくれます。(別に手動でも可)
(画像用意)
とスムーズにいかずにビルドでこけて、permission関係のエラーが出ているので以下サイトを参考に修正

Docker関連の管理は普通であればDocker for Windowsが使い勝手がいいのだが、いろいろと弄りすぎたのか自分の環境ではDocker for Windowsが起動してくれないので手動でコマンドをポチポチ押してます。
といっても、docker compose up -dとするだけですが。
というわけで正しくvscodeが立ち上がったら左下にこのようにコンテナ名が表示されているかと思います。

同様に今後、フロント開発用の環境、functionsなどを使うであろうインフラ開発環境などをDockerで整備することにします。
この開発環境をDockerで整備するやり方の利点として、ほぼそのままクラウドサービスにデプロイしてリリースすることができるという点です。
もちろん、本格的な開発になればdev, staging, productのように若干の差異がビルド時に発生しますが、基本は同じなので今回は特に分けずに行こうと思います。
今回はここまで、ありがとうございました。

コメント