在码头工作者我想这样做:
git clone XYZ
cd XYZ
make XYZ
Run Code Online (Sandbox Code Playgroud)
但是因为没有cd命令,所以每次都必须传入完整路径(make XYZ/fullpath).对此有什么好的解决方案?
Jav*_*nos 463
要更改到另一个目录,请使用WORKDIR.WORKDIR之后的所有RUN,CMD和ENTRYPOINT命令都将从该目录执行.
RUN git clone XYZ
WORKDIR "/XYZ"
RUN make
Run Code Online (Sandbox Code Playgroud)
Ali*_*man 130
您可以在RUN上运行脚本或更复杂的参数.这是我之前下载的Dockerfile的示例:
RUN cd /opt && unzip treeio.zip && mv treeio-master treeio && \
rm -f treeio.zip && cd treeio && pip install -r requirements.pip
Run Code Online (Sandbox Code Playgroud)
由于使用'&&',如果所有先前的命令都成功,它将只能进入最后的'pip install'命令.
实际上,由于每个RUN都会创建一个新的提交和(当前)AUFS层,如果你在Dockerfile中有太多的命令,你将用尽限制,所以合并RUN(当文件稳定时)可能是一个非常好的有用的事情要做.
小智 35
RUN git clone http://username:password@url/example.git
WORKDIR /folder
RUN make
Run Code Online (Sandbox Code Playgroud)
Mia*_*mad 29
我想知道两次是否WORKDIR有效,但它有效:)
FROM ubuntu:18.04
RUN apt-get update && \
apt-get install -y python3.6
WORKDIR /usr/src
COPY ./ ./
WORKDIR /usr/src/src
CMD ["python3", "app.py"]
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以对所有这些使用单个 RUN 命令
RUN git clone XYZ && \
cd XYZ && \
make XYZ
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
189597 次 |
| 最近记录: |