Goland基于Docker联动开发Go

背景:
因为工作环境不同,每次都要都要搭不同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基于Docker联动开发Go_第1张图片

四、配置goland
window:setting->build、execution->docker
在里面添加一个本地docker
mac如下图:
Goland基于Docker联动开发Go_第2张图片

设置成功后在service里面会多出docker标志
Goland基于Docker联动开发Go_第3张图片

五、测试
在对应的容器里面,选中右手键,添加terminal
Goland基于Docker联动开发Go_第4张图片
然后写代码运行
Goland基于Docker联动开发Go_第5张图片

你可能感兴趣的:(Goland基于Docker联动开发Go)