首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带Go的Docker代理

带Go的Docker代理
EN

Stack Overflow用户
提问于 2019-03-02 14:28:14
回答 1查看 82关注 0票数 2

我正在尝试创建一个有Go的Jenkins Docker代理。下面是我的Dockerfile。

在我构建它之后,如果我尝试:docker run myimage:0.0.1 go version返回Go版本,但是如果我尝试这样做,它根本找不到Go。

代码语言:javascript
复制
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用户下可用,我错过了什么?

代码语言:javascript
复制
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"]
EN

回答 1

Stack Overflow用户

发布于 2019-03-02 20:29:57

如果您运行以下命令:

代码语言:javascript
复制
docker run myimage:0.0.1 which go

您将在path /usr/local/go/bin/go中看到go可执行文件

如果您以jenkins用户身份通过ssh连接并运行/usr/local/go/bin/go version,那么一切都将正常工作。

结论:

以超级用户身份提供的

  1. Go安装
  2. jenkins用户在安装go后添加,但尚未在其$PATH环境变量中使用/usr/local/go/bin/go

解决方案:

  1. Add /usr/local/go/bin/go to $PATH for user jenkins
  2. Use go executable with full path。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54955828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档