我刚刚开始使用Docker。
我正在研究另一个开发人员编码的项目。在项目Docker容器中,我有三个微服务(聚合器,分类器,testmicro)。
在classificatore/
中,我有:
classificatore / Dockerfile
FROM python:3
RUN mkdir /src
ADD requirements.txt /src/.
WORKDIR /src
RUN pip install -r requirements.txt
ADD . /src/.
RUN mkdir -p /tmp/reqdoc
CMD ["python", "main.py"]
我通过运行以下程序构建应用程序:
docker-compose up -d
我已经意识到Docker并没有编译项目文件夹中的源文件,而是使用了由classificatore / Dockerfile创建的dir /src
中的源文件。我找不到此目录。
如何告诉docker在我的项目位置中使用文件?
我正在使用PyCharm,不知道它是否是有用的信息:-)
编辑1 :
docker-compose.yml
version: '2.1'
services:
files:
image: busybox
volumes:
[..]
grafana:
[..]
prometheus:
[..]
aggregatore:
[..]
classificatore:
build: classificatore/.
volumes:
- [..]
volumes_from:
- files
ports:
- [..]
command: ["python", "/src/main.py"]
depends_on:
rabbit:
condition: service_healthy
testmicro:
[..]
rabbit:
[..]
答案 0 :(得分:1)
docker-compose up -d
将为声明构建的服务构建镜像,前提是且仅当本地Docker注册表中不存在镜像时。如果您docker-compose down
并重新开始,则下一个调用将仅使用已存在的图像启动容器。
要更新现有映像并运行其中的新容器,必须专门要求构建。
docker-compose build
docker-compose up -d
另一种选择是使用--build
选项。
docker-compose up -d --build
您可以通过查看帮助找到其他有用的方案:
docker-compose --help
docker-compose build --help
docker-compose up --help