我正在尝试创建一个具有Go的Jenkins Docker代理。 以下是我的Dockerfile。
构建后,如果尝试执行以下操作:docker run myimage:0.0.1 go version
返回Go版本,但是如果尝试执行此操作,则根本找不到Go。
docker run --privileged --dns 9.0.128.50 --dns 9.0.130.50 -d -P --name slave myimage:0.0.1
docker ps ## grab the port number
ssh -p PORT_NUMBER jenkins@localhost
要让Jenkins用户可以使用Go,我缺少什么?
FROM golang:1.11.5-alpine
RUN apk add --no-cache \
bash \
curl \
wget \
git \
openssh \
tar
COPY ssh/*key /etc/ssh/
COPY skel/ /home/jenkins
COPY id_rsa /home/jenkins/.ssh/id_rsa
COPY id_rsa.pub /home/jenkins/.ssh/id_rsa.pub
RUN addgroup docker \
&& adduser -s /bin/bash -h /home/jenkins -G docker -D jenkins \
&& echo "jenkins ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers \
&& echo "jenkins:jenkinspass" | chpasswd \
&& chmod u+s /bin/ping \
&& chown -R jenkins:docker /home/jenkins \
&& mv /etc/profile.d/color_prompt /etc/profile.d/color_prompt.sh \
&& mv /bin/sh /bin/sh.bak \
&& ln -s /bin/bash /bin/sh
# Standard SSH port
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
答案 0 :(得分:0)
如果您运行:
docker run myimage:0.0.1 which go
您将在路径/usr/local/go/bin/go
中看到该go可执行文件
如果您通过ssh以jenkins用户身份连接并运行/usr/local/go/bin/go version
,那么所有工作也将正常进行。
结论:
/usr/local/go/bin/go
环境变量中的$PATH
。解决方案:
/usr/local/go/bin/go
添加到$PATH