相关疑难解决方法(0)

禁用特定RUN命令的缓存

RUN在Dockerfile中有一些命令,我想在-no-cache每次构建Docker镜像时运行它.

我理解docker build --no-cache将禁用整个Dockerfile的缓存.

是否可以为特定的RUN命令禁用缓存?

docker

66
推荐指数
8
解决办法
3万
查看次数

如何将代码从Git更新到Docker容器

我有一个Docker文件试图将Django代码部署到容器中

FROM ubuntu:latest
MAINTAINER { myname }

#RUN echo "deb http://archive.ubuntu.com/ubuntu/ $(lsb_release -sc) main universe" >> /etc/apt/sou$

RUN apt-get update

RUN DEBIAN_FRONTEND=noninteractive apt-get install -y tar git curl dialog wget net-tools nano buil$
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python python-dev python-distribute python-p$

RUN mkdir /opt/app
WORKDIR /opt/app

#Pull Code
RUN git clone git@bitbucket.org/{user}/{repo}

RUN pip install -r website/requirements.txt

#EXPOSE = ["8000"]
CMD python website/manage.py runserver 0.0.0.0:8000
Run Code Online (Sandbox Code Playgroud)

然后我构建我的代码docker build -t dockerhubaccount/demo:v1 .,这将我的代码从Bitbucket拉到容器.我运行它docker run -p 8000:8080 -td felixcheruiyot/demo:v1,事情似乎工作正常. …

python git deployment continuous-integration docker

29
推荐指数
3
解决办法
1万
查看次数

仅当 Git 存储库更新时才使 Docker 缓存无效

我有一个 docker Dockerfile,我想在其中克隆 Git 存储库。如果 Git 存储库没有更新,我希望 Docker 使用它的缓存。如果存储库已更新,则构建 Docker 映像应使用 Git 存储库更新。

基于这个 stackoverflow 问题:

如何防止 Dockerfile 缓存 git clone

我已将以下内容添加到我的 Dockerfile 中:

#invalidate cache if micropython is updated
ADD https://api.github.com/repos/dwjbosman/micropython/git/refs/heads/master /root/micropython_version.json

RUN git clone --recurse-submodules https://github.com/dwjbosman/micropython.git /root/micropython && \
    cd /root/micropython && \
    git submodule update
Run Code Online (Sandbox Code Playgroud)

我使用带有目标的 makefile 来构建映像。首先,我从 docker hub 中提取上一个镜像:

docker pull $(REGISTRY)/$(DOCKER_IMAGE)
Run Code Online (Sandbox Code Playgroud)

然后我使用这个拉取的图像作为新构建的缓存:

docker build --cache-from $(DOCKER_IMAGE) -t $(DOCKER_IMAGE) 
Run Code Online (Sandbox Code Playgroud)

然后新镜像被推送到 Docker hub。我正在 CI 环境 (Gitlab) 中构建图像。如果我检查日志,即使 Git 存储库中没有进行任何更新,ADD 步骤也总是会使缓存无效(并且校验和会更改)。

我已经检查了“ https://api.github.com/repos/dwjbosman/micropython/git/refs/heads/master ”的输出。内容似乎没有变化。

是否有一些隐藏的属性(也许是时间?)仍然在变化?

git docker gitlab-ci dockerfile

5
推荐指数
0
解决办法
1283
查看次数