docker - 从Docker容器运行docker-compose

标签 docker jenkins docker-compose

我在安装了JenkinsDocker容器内运行了docker.sock。我可以从此容器调用docker-compose在主机上运行服务吗?我尝试从容器内执行安装脚本,但一直在说

"no such file or directory".


docker exec jenkins curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

docker exec jenkins chmod +x /usr/local/bin/docker-compose

最佳答案

这是可以实现的,但要使其正确就很难。

您需要使用Docker卷安装docker-compose.yml文件在docker主机上的路径,到达容器中相同的位置。

因此,如果docker-compose.yml文件位置在docker主机上为/home/leonid/workspace/project1/docker-compose.yml,则需要为jenkins容器添加卷-v /home/leonid/workspace/project1/:/home/leonid/workspace/project1/

然后,在您的 Jenkins 工作中:

cd /home/leonid/workspace/project1/
docker-compose up -d

为什么?

请记住,docker-compose会向docker引擎提供指令。 docker引擎在docker主机上运行(而不是在Jenkins容器中)。因此,docker-compose给docker引擎的任何路径都必须存在于docker主机上。

关于docker - 从Docker容器运行docker-compose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55089996/

相关文章:

python - 从 python 运行 docker-compose

docker - 有没有办法在 VSCode Devcontainers 中调试 PostCreateCommand?

java - 如何在同一容器中运行 COPY 和 RUN 命令?

jenkins - 在 Docker 插件中构建 Jenkins 时安装失败

linux - 如何将 Jenkins 作业从 Windows 本地计算机迁移到 Linux 服务器?

mongodb - 以非 root 用户身份启动 Mongodb 容器

python - 在pycharm中共享相同的远程docker

docker - 获取 D-Bus 连接失败 : Operation not permitted

docker - 如何在 OpenShift 中使用 "oc new-app"向 docker run 提供参数?

Jenkins 无法访问共享文件夹