私はPythonでいくつかのデータ処理を行うプロジェクトでDockerを使いたいと思っています。私のコードがcode
というディレクトリ(解析のステップごとに複数のpythonファイルで構成されています)とディレクトリdata
の中にあるとしましょう。一つの解決策は、このようなコードやデータを追加することです:Docker Containerにローカルディレクトリをマウント
# Dockerfile
FROM debian:stable-slim
RUN apt-get update && apt-get install -y python-pip
ADD code /code
ADD data /data
WORKDIR /code
CMD python
その後、私はcode
からのファイルのいずれかを実行するためにdocker run -i someName pythonFile1.py
を使用できます。しかし、ここで問題になっているのは、コードやデータを変更するたびにdocker build .
を再実行する必要があるということです。
だから私はボリュームにdocker-compose
を使用して、これらの2つのディレクトリを含めることを試みた:
#docker-compose.yml
version: '2'
services:
myProject:
build: .
volumes:
- ./code:/code
- ./data:/data
# Dockerfile
FROM debian:stable-slim
RUN apt-get update && apt-get install -y python-pip
WORKDIR /code
CMD python
今、私はそれを構築するためにdocker-compose build
を実行することができ、その後、私はちょうどdocker-compose run myProject pythonFile1.py
を行うことができると思ったが、その後私が手次のエラー:
ERROR: Cannot start service tools: oci runtime error: container_linux.go:262: starting container process caused "exec: \"pythonFile1.py\": executable file not found in $PATH"
私が間違っているのか?ドッカーは、移動する方法を構成していますか(または、私は単純なDockerfileだけでも必要なものを達成することができますか)?ここ