共计 1430 个字符,预计需要花费 4 分钟才能阅读完成。
背景:
因为工作环境不同,每次都要都要搭不同 go 的环境,所以把心一横都把环境放在 docker 上,这样每次就用 dockerfile 就能够了。
如果能迷信上网预计都能查到这文章
https://blog.jetbrains.com/go…
如果依据 jetbrain 这篇文章来原理是 goland build 新 docker,然而会有个问题,每次 run 或 build 上在 dockerdesk 里多出一些奇怪的容器(到当初我也查不明起因)。而后我逆向思维,做成在 goland 连贯本地 build 好的 docker,而后 goland terminal 开发测试。
实际操作:
一、基于本人需要写 dockerfile
FROM centos:8.4.2105
#尽量小写 run,合在一起能够减小层
RUN yum install -y curl wget && \
wget -O /etc/yum.repos.d/CentOS-Linux-BaseOS.repo https://mirrors.aliyun.com/repo/Centos-8.repo && \
yum install -y tar bzip2 unzip passwd sudo yum-utils hostname net-tools man which && \
yum install -y gcc gcc-c++ git make automake cmake patch libpng-devel libjpeg-devel && \
yum -y install openssh-server && \
yum clean all && \
mkdir -p /var/run/sshd && \
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key && \
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key && \
/bin/echo 'root:123456'|chpasswd && \
/bin/sed -i 's/.*session.*required.*pam_loginuid.so.*/session optional pam_loginuid.so/g' /etc/pam.d/sshd && \
/bin/echo -e "LANG=\"en_US.UTF-8\"" > /etc/default/local && \
rm -rf /run/nologin
RUN cd /tmp &&\
wget -O go.tar.gz https://golang.google.cn/dl/go1.17.1.linux-amd64.tar.gz && \
tar --remove-files -C /usr/local/ -zxf go.tar.gz && \
mkdir -p /go && \
ln -sv /usr/local/go/bin/go /bin
#env 放在最初
ENV GOROOT=/usr/local/go
ENV GOPATH=/go
ENV PATH=$GOROOT/bin:$PATH
EXPOSE 22
CMD /usr/sbin/sshd -D
二、build 镜像docker build -t docker_centos .
三、启动容器,这里用 dockerdesk, 记得要挂载宿主机开发环境
四、配置 goland
window:setting->build、execution->docker
在外面增加一个本地 docker
mac 如下图:
设置胜利后在 service 外面会多出 docker 标记
五、测试
在对应的容器外面,选中右手键,增加 terminal
而后写代码运行
正文完