我使用以下模块:
https://docs.ansible.com/ansible/latest/modules/docker_service_module.html?highlight=ansible%20doc
我可以使用此模块创建和启动Docker容器。但是,是否可以在此容器上执行任务(并保留更改)?
我的意思是:
安装一些yum包
在容器中插入一些bash脚本。
能给我一些线索吗?
答案 0 :(得分:2)
作为一般规则,请勿在正在运行的容器上安装软件。如果您需要一个装有某些软件的容器,则应构建一个具有所需软件的自定义映像,并进行设置,以便一旦启动它即可自行完成所需的一切。 (作为更广泛的规则,除调试内容外,您无需it('should handle the action correctly', () => {
// arrange
const sectionId = 15;
const valueToSet = ['fixture'];
const initialState = fromJS({
allSections: [{ sectionId: 15, commonSectionNames: [] }]
});
const expectedState = fromJS({
allSections: [{ sectionId: 15, commonSectionNames: valueToSet }]
});
// act
const result = reducer(initialState, action(sectionId, valueToSet));
// assert
expect(result).toEqual(expectedState);
});
进入正在运行的容器中;它绝对不是“如何对容器执行操作”核心工作流的一部分。)
我建议遵循标准的Docker教程,例如Docker的official tutorial on building and running custom images。拥有可用的Docker映像工作流后,将使用Ansible docker exec
模块代替docker_container
命令。