在构建docker映像时,我希望能够使用--squash
开关,因为这样可以节省几MB的结果映像。
这需要为docker启用实验功能。
执行docker --version
确认(应如此)在托管的Azure Pipelines代理上将关闭实验功能。
Server:
Engine:
Version: 18.03.1-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:15:30 2018
OS/Arch: linux/amd64
Experimental: false
Linux代理正在运行
Kernel Version: 4.15.0-1022-azure
Operating System: Ubuntu 16.04.4 LTS
OSType: linux
Architecture: x86_64
我尝试将/etc/systemd/system/docker.service.d/docker.conf
和/etc/docker/daemon.json
更改为以/包括实验性标志开头,但未成功启用它。
docker.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --experimental=tr
或
daemon.json
{
"experimental": true
}
但是请不确定我是否可以在托管代理上重新启动守护程序。
当前正在执行yaml生成从bash调用docker的操作,但在Web界面中也没有看到实验性内容。
如果我启动自己的Ubuntu VM并在其上托管代理,则可以进行实验,但是希望通过使用托管代理来避免成本和维护。
答案 0 :(得分:2)
在https
更新之后,您可以在Ubuntu Image中简单地重新启动docker服务。我使用两行脚本:
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<int> v;
v.push_back(0);
v.push_back(1);
v.push_back(2);
std::cout << find(v.begin(), v.end(), 1) - v.begin() << std::endl;
return 0;
}
答案 1 :(得分:0)
在我的管道中的 docker build 任务之前使用以下脚本启用它。
- script: |
echo '{ "experimental": true }' | sudo tee /etc/docker/daemon.json
sudo service docker restart
displayName: 'Enable docker experimental features for squashing '