Sign inSign up

haifengat/devgo

By haifengat

•Updated over 5 years ago

base centos8 develop for golang with oracle

Image
0

466

haifengat/devgo repository overview

⁠Dockfile

FROM centos:8.2.2004
### root:pentakill

### author label
LABEL maintainer="HaiFeng"
### 密码 # 配置 ll #修改时区 # 注意密码长度>8
RUN echo "root:pentakill" | chpasswd \
&& echo "alias ll='ls $LS_OPTIONS -lh --color=auto'" >> ~/.bashrc \
&& rm -rf /etc/localtime && ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "keepcache=0" >> /etc/yum.conf

### 解决ssh连接后丢失 docker run ... -e 设置的环境变量的问题
RUN echo "export \$(cat /proc/1/environ |tr '\0' '\n' | xargs)" >> ~/.bashrc

### 换源(在hub.docker中导致安装应用过慢)
RUN sed -i \
-e 's|^mirrorlist=|#mirrorlist=|' \
-e 's|^#baseurl=|baseurl=|' \
-e 's|http://mirror.centos.org|https://mirrors.aliyun.com|' \
/etc/yum.repos.d/*.repo

RUN yum clean all && yum makecache

#升级
RUN yum -y update --refresh

### 安装git  sshd服务   中文环境
# 使用 locale -a 检查中文支持是否正常
RUN yum install git openssh-server langpacks-zh_CN.noarch -y
# 安装oracle驱动
RUN yum install -y unzip libnsl openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel postgresql-devel bzip2 make gcc gcc-c++ epel-release libaio \
&& mkdir -p /opt/oracle && cd /opt/oracle \
&& curl -o ora.zip \
https://download.oracle.com/otn_software/linux/instantclient/195000/instantclient-basic-linux.x64-19.5.0.0.0dbru.zip \
&& unzip ora.zip \
&& sh -c "echo /opt/oracle/instantclient_19_5 > /etc/ld.so.conf.d/oracle-instantclient.conf" \
&& ldconfig \
&& mkdir -p /opt/oracle/instantclient_19_5/network/admin && rm -f ora.zip

ENV LANG zh_CN.UTF-8
ENV LC_ALL zh_CN.UTF-8
ENV LD_LIBRARY_PATH /opt/oracle/instantclient_19_5:\$LD_LIBRARY_PATH

## 启动sshd
RUN yum clean all \
&& ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N '' \
&& ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N '' \
&& ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N '' \
&& rm -rf /run/nologin

# golang
ENV GOROOT /usr/local/go
ENV PATH $PATH:$GOROOT/bin
ENV GO111MODULE=on
ENV GOPROXY=https://goproxy.cn

RUN yum install -y wget \
&& wget -O go.tar.gz https://studygolang.com/dl/golang/go1.14.9.linux-amd64.tar.gz \
&& tar -C /usr/local -xzf go.tar.gz \
&& ln -s /usr/local/go/bin/go /usr/bin/go

ENTRYPOINT ["/usr/sbin/sshd", "-D"]

⁠Build
docker build -t haifengat/devgo:8.2.`date +%Y%m%d` . \
&& docker push haifengat/devgo:8.2.`date +%Y%m%d`

⁠docker-compose.yml

version: "3.7"
services:
  devgo:
    image: haifengat/devgo:8.2.1106
    container_name: devgo
    restart: always
    ports:
      - "2222:22"
    environment:
      - TZ=Asia/Shanghai
    volumes:
      # 生成id_isa添加到gitee,实现git push
      - ./ssh:/root/.ssh
      # git 配置信息 user.name  user.email
      - ./gitconfig:/root/.gitconfig:ro
      # vscode服务端(一次安装长期使用)
      - ./.vscode-server:/root/.vscode-server
      # code
      - /mnt/code:/home/code
      # go 包括bin和pkg两个目录,用于离线环境开发
      - ./go:/root/go
⁠Install plugins
  • vscode remote 连接 devgo:2222
  • ctrl+alt+p 输入 go:install/update tools 全选安装
⁠插件离线
  1. 公网环境go install 插件,打包到离线环境中对应的go目录
  2. docker-compose.yml 中 - ./go:/root/go

Tag summary

Content type

Image

Digest

Size

595.9 MB

Last updated

almost 6 years ago

docker pull haifengat/devgo