关于docker:Goland基于Docker联动开发Go

5次阅读

共计 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

而后写代码运行

正文完
 0