背景:
因为工作环境不同,每次都要都要搭不同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/goENV GOPATH=/goENV PATH=$GOROOT/bin:$PATHEXPOSE 22CMD /usr/sbin/sshd -D
二、build 镜像docker build -t docker_centos .
三、启动容器,这里用dockerdesk,记得要挂载宿主机开发环境
四、配置goland
window:setting->build、execution->docker
在外面增加一个本地docker
mac如下图:
设置胜利后在service外面会多出docker标记
五、测试
在对应的容器外面,选中右手键,增加terminal
而后写代码运行