gpt4 book ai didi

mysql - RUN mkdir/code 和 ADD ./code/是什么意思

转载 作者:行者123 更新时间:2023-11-29 17:54:03 25 4
gpt4 key购买 nike

我现在正在按照 Docker 的说明创建 Django+MySQL 项目。但是对于 Dockerfile,有谁能解释一下为什么会有这两行吗?

FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code <=====Why we need to mkdir here, will /code dir be delete after build?
RUN mkdir /code/db
WORKDIR /code
ADD ./mysite/requirements.txt /code/ <==For my understanding, here we copy our local requirements file into image's /code dir?
RUN pip install -r requirements.txt
ADD . /code/ <== What's this step doing? Copying all my current dir's content into /code? why we do this?

在 docker-compose.yml 中,有这样的行:

web:
build: .
command: python ./mysite/manage.py runserver 0.0.0.0:8000
volumes:
< - .:/code >
ports:
- "8000:8000"
links:
- db

最佳答案

RUN mkdir /code

此行将在 / 下创建一个名为 code 的目录。该目录将包含当前驻留在主机上的 . 中的代码。

ADD ./mysite/requirements.txt /code/ 

将主机中的 pythonrequirements.txt 添加到容器内的 code 目录中。

RUN pip install -r requirements.txt

在容器内安装需求。

ADD . /code/

将主机中的 python 代码添加到 /code 目录中的容器

volumes:
< - .:/code >

将主机上的当前目录挂载到容器/code目录中。您可能想知道为什么要这样做,并且代码已经通过 ADD 添加了。/代码/

对于开发来说,这是一种聪明的技术。您可以挂载 python 代码,并且更改将自动在容器内可见,而不是每次更改 python 代码时都重建镜像。因此只需要重新启动容器即可让新的代码发生变化。

关于mysql - RUN mkdir/code 和 ADD ./code/是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49022889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com