opt*_*lic 7 apt docker bitbucket-pipelines
我正在尝试使用 gradle、jdk 8 构建一个项目并使用 ansible 进行部署。
我找不到包含所有这些的最新 docker 映像,因此我正在即时安装 ansible。
据称 Bitbucket 管道能够创建自定义缓存,但它似乎没有缓存 apt 目录
image: java:8
pipelines:
default:
- step:
caches:
- gradle
- apt
script:
- echo 'deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main' >> /etc/apt/sources.list
- apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
- apt-get update && apt-get install -y ansible
- bash ./gradlew clean bootJar
definitions:
caches:
apt: /var/cache/apt/archives
Run Code Online (Sandbox Code Playgroud)
结果是
Dependency caches
gradle: ~/.gradle/caches 158.37 MB 06 Apr 2018
apt: /var/cache/apt/archives 151 Bytes 06 Apr 2018
Run Code Online (Sandbox Code Playgroud)
编辑:我添加了一个步骤来列出目录,不仅那里什么都没有,我在整个系统上找不到任何 deb 文件
find /var/cache/
<1s
+ find /var/cache/
/var/cache/
/var/cache/apt
/var/cache/apt/archives
/var/cache/apt/archives/partial
/var/cache/apt/archives/lock
/var/cache/ldconfig
/var/cache/ldconfig/aux-cache
/var/cache/debconf
/var/cache/debconf/templates.dat
/var/cache/debconf/config.dat-old
/var/cache/debconf/config.dat
/var/cache/debconf/templates.dat-old
/var/cache/debconf/passwords.dat
/var/cache/fontconfig
/var/cache/fontconfig/d589a48862398ed80a3d6066f4f56f4c-le64.cache-4
/var/cache/fontconfig/7ef2298fde41cc6eeb7af42e48b7d293-le64.cache-4
/var/cache/fontconfig/3830d5c3ddfd5cd38a049b759396e72e-le64.cache-4
/var/cache/fontconfig/CACHEDIR.TAG
/var/cache/fontconfig/4c599c202bc5c08e2d34565a40eac3b2-le64.cache-4
find / -name "*.deb"
<1s
+ find / -name "*.deb"
Run Code Online (Sandbox Code Playgroud)
在基于 Ubuntu 的 docker 镜像中,通常有一个 apt hook 可在安装后删除软件包。它位于/etc/apt/apt.conf.d/。
在 中ubuntu:19.04,包含该钩子的文件被称为docker-clean. 如果删除它,您将能够找到在/var/cache/apt/archives.
因此,只需在管道的开头添加以下内容就可以让您的apt缓存按预期工作:
rm /etc/apt/apt.conf.d/docker-clean
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
847 次 |
| 最近记录: |