freks blog

about

Dev Containerの立ち上げ時のカレントディレクトリ

created: 2024-04-08
おすすめ記事: 出会ってよかったプログラマー本

VSCode devcontainerでDockerfileをbuildして使うようにしてみました
Python環境を用意しようとしていて

├── README.md
├── app.py
├── poetry.lock
├── pyproject.toml
└── .devcontainer
  ├── Dockerfile
  ├── compose.yaml
  └── devcontainer.json

としていました

compose.yaml

services:
  app:
    build:
      context: .
      target: final

Dockerfile

FROM python:3.12.2

RUN pip install --upgrade pip && pip install poetry

Docker containerにpoetryを入れて、コンテナを立ち上げたら poetry install も終わるようにしたかったのでDockerfileに

COPY poetry.lock pyproject.toml /app/
RUN poetry install

を追記すると、poetry.lock が見つからずエラーになります

これは docker build するときに、カレントディレクトリが .devcontainer になっているからです
コンテナ立ち上げ時に一つ上を見ることはできなさそうです

なのでbuild時に入れるのでなく、build後にコンテナを立ち上げるときに入れるようにいれます
.devcontainer.json

{
  // ---
 "updateContentCommand": "poetry install",
  // ---
}

を追記します

これでカレントディレクトリの poetry.lock を見てPythonモジュールがインストールされます

PR

Pythonチュートリアル 第4版

Pythonチュートリアル 第4版

このリンクは、アフィリエイトリンクです


Amazonのアソシエイトとして、blog.freks.jp は適格販売により収入を得ています。
This site is managed by freks