我正在尝试创建一个有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为了让Go在Jenkins用户下可用,我错过了什么?
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"]发布于 2019-03-02 20:29:57
如果您运行以下命令:
docker run myimage:0.0.1 which go您将在path /usr/local/go/bin/go中看到go可执行文件
如果您以jenkins用户身份通过ssh连接并运行/usr/local/go/bin/go version,那么一切都将正常工作。
结论:
以超级用户身份提供的
$PATH环境变量中使用/usr/local/go/bin/go。解决方案:
/usr/local/go/bin/go to $PATH for user jenkinshttps://stackoverflow.com/questions/54955828
复制相似问题