Dockerfile 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. FROM centos:7
  2. # about author eamil
  3. MAINTAINER fanhaodong516@gmail.com
  4. ## install golang 1.13.5
  5. ARG GO_VERSOION=1.13.5
  6. RUN yum install -y wget git\
  7. && wget https://golang.org/dl/go${GO_VERSOION}.linux-amd64.tar.gz -O /tmp/go{GO_VERSOION}.linux-amd64.tar.gz \
  8. && tar -zxvf /tmp/go{GO_VERSOION}.linux-amd64.tar.gz -C /usr/local \
  9. && rm -f /tmp/go{GO_VERSOION}.linux-amd64.tar.gz
  10. ENV PATH=${PATH}:/usr/local/go/bin
  11. ## update yum repo
  12. RUN rm -rf /etc/yum.repos.d/*.repo \
  13. && curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo \
  14. && curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
  15. ## install 工具(添加工具较为灵活,防止重复构建上层)
  16. RUN yum install -y \
  17. net-tools \
  18. vim \
  19. htop \
  20. sysstat \
  21. iproute \
  22. dstat \
  23. telnet \
  24. unzip \
  25. curl \
  26. tcpdump \
  27. lrzsz
  28. # install gcc lib and make
  29. RUN yum install -y gcc \
  30. automake \
  31. autoconf \
  32. libtool \
  33. make
  34. # install qconf
  35. RUN wget https://github.com/Qihoo360/QConf/releases/download/1.2.1/QConf-1.2.1-1.el6.x86_64.rpm -O /tmp/QConf-1.2.1-1.el6.x86_64.rpm \
  36. && rpm -ivh /tmp/QConf-1.2.1-1.el6.x86_64.rpm && ln -s /usr/local/qconf/lib/libqconf.so /usr/lib/libqconf.so \
  37. && ldconfig \
  38. && rm -f /tmp/QConf-1.2.1-1.el6.x86_64.rpm
  39. # Lang and timezone ENV
  40. ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
  41. RUN echo Asia/Shanghai > /etc/timezone && ln -sf /usr/share/zoneinfo/$(cat /etc/timezone) /etc/localtime
  42. # GO ENV
  43. ENV GOPRIVATE=gitea.ckfah.com*
  44. ENV GOPROXY=https://goproxy.cn,direct
  45. RUN git config --global url."git@gitea.ckfah.com:".insteadOf "https://gitea.ckfah.com/"
  46. # 容器内项目地址
  47. WORKDIR /data/go-template
  48. # copy ssh文件
  49. COPY .ssh /root/.ssh
  50. ## go 编译加速
  51. ## /tmp 目录是编译的临时目录, 只有启动--work参数才有
  52. ## /root/.cache/go-build 是go文件的编译目录
  53. ## /root/go/pkg 是mod的缓存目录
  54. # 启动参数需要根据需求定!
  55. CMD [ "/bin/bash"]