如何在 docker 容器内运行 docker build 命令?

问题描述 投票:0回答:1

这与使用 CI/CD 相关,我的私人存储库中有一个图像,比如 my_image,当我们触发管道时,gitlab-runner(共享)将拾取该图像并在其上运行我们的 ci 命令。

我的要求是我需要在图像中包含 docker,以便某些命令“say build”的输出将返回有效的 docker 文件,并且我需要使用 docker build 在该文件之上构建图像

我想知道有什么办法可以实现这一目标吗?

一些背景:

  • 我不会对运行程序执行作业的环境具有 root 访问权限。
  • docker套接字的情况也是如此(不会赋予超级用户角色)

感谢您的帮助..

我尝试在容器内安装 docker,docker -v 命令正在工作,但没有其他 docker 命令正在工作,并且他们失败了(无法连接到 docker 守护进程,守护进程正在运行吗?

我认为我无法使用特权容器会计来解决各种安全问题。

我无法在运行映像时挂载 docker 二进制文件,因为该作业正在由运行程序执行(我认为是这样,如果我错了请指出..)

docker dockerfile docker-machine
1个回答
0
投票

Yoi 必须编写一个基本的 docker 文件,如下所示:

FROM <MY-BASE-IMAGE>

RUN apt update -y
RUN apt install -y curl
RUN curl https://get.docker.com/builds/Linux/x86_64/docker-latest.tgz | tar xvz -C /tmp/ && mv /tmp/docker/docker /usr/bin/docker

然后,当您运行容器映像时,使用

-v /var/run/docker.sock:/var/run/docker.sock
参数允许嵌入式 docker 客户端由主机 docker 守护进程运行。

© www.soinside.com 2019 - 2024. All rights reserved.