我尝试在Ubuntu Docker容器中运行Docker,将其用作Jenkins的Docker构建代理。
当我尝试运行docker build命令来创建docker镜像时,出现以下错误。
Jenkins出错
ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Docker构建代理的Docker文件
FROM ubuntu:latest
RUN apt update
USER root
RUN apt install -y git
RUN apt-get install \
ca-certificates \
curl \
gnupg -y
RUN mkdir -m 0755 -p /etc/apt/keyrings
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
RUN echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
RUN apt-get update
RUN apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
RUN curl -fsSL https://deb.nodesource.com/setup_19.x | bash - &&\
apt-get install -y nodejs
管道应:
1.克隆存储库
1.构建React应用程序
1.构建Docker镜像并将其推送到Docker注册表。
我怎样才能让这个设置运行?或者有没有更好的方法来实现这一点?
我必须使用Docker构建代理,因为所有必要的工具并不总是直接安装在主机上。
1条答案
按热度按时间k4aesqcs1#
一个不太复杂的方法是在一个普通代理上安装docker,然后在这台机器上使用docker引擎来构建你的docker镜像,让我展示一个类似的Jenkinsfile示例,其中使用了这种方法:'''管道{代理任何环境{ DOCKER_REG_CRED = credentials(' Nexus-Creds ')DOCKER_REG =“”}阶段{
}'''我的代理jenkins-opensource-linux是一个安装了docker引擎的linux虚拟机。请确保您将docker设置为在没有root的情况下使用。这应该很容易实现。