やりたいこと
- dockerを使ってpythonが使えるコンテナを作りたい
- docker起動時にシェルを起動して動作確認したい
- コンテナの再起動をせずともソースコードの変更を反映したい
pythonが使用できるコンテナの作成
Dockerfile
FROM python:3.9-slim-buster
WORKDIR /src
COPY . .
RUN pip install -q -U google-generativeai
docker-compose.yml
version: "3.9"
services:
python:
build: .
volumes:
- .:/src
docker-composeのvolumeで作業ディレクトリをコンテナにバインドマウント?することでソースコードの変更が即時に反映された
コンテナ起動時にシェルを起動する
3つ方法がある(らしい)。
1 docker compose exec を使用する
すでに起動してあるコンテナに対して
docker compose exec {service} bash
今回つくるコンテナは常駐型のサービスがなく、作成とともにすぐに消滅する→不採用
2 docker compose run を使用する
docker compose run {service} bash
新しいコンテナの作成と同時にbashを起動する→採用
3 composeファイルに記述する
commandオプションで["bash"]を追加すると、コンテナ作成時にbashが実行される→毎回実行されると面倒そうなので不採用
動作確認
以下のソースコードをdocker関連ファイルと同ディレクトリに配置
main.py
import google.generativeai as genai
genai.configure(api_key="")
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Do you like dog?")
print(response.text)
続いて、docker compose run python bash
さらに cat main.pyで内容を確認
その後、テキストエディタでmain.pyを編集→上書き保存
そして cat main.py 内容が変更されていることが確認できたらOK
以上