base centos8 develop for golang with oracle
466
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"]
docker build -t haifengat/devgo:8.2.`date +%Y%m%d` . \
&& docker push haifengat/devgo:8.2.`date +%Y%m%d`
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
- ./go:/root/goContent type
Image
Digest
Size
595.9 MB
Last updated
almost 6 years ago
docker pull haifengat/devgo