Docker使用-完整的Dockerfile

12 篇文章 0 订阅
# Docker for CentOS 7

#Base image
FROM centos:7

#Who
MAINTAINER ShiManQiang "shimanqiang@huizhaofang.com"

ADD motd /etc/motd

#更换repo镜像源-替换为网易的镜像源
ADD CentOS7-Base-163.repo /etc/yum.repos.d/CentOS7-Base-163.repo
#RUN cd /etc/yum.repos.d && mv CentOS-Base.repo CentOS-Base.repo.bk && wget http://mirrors.163.com/.help/CentOS7-Base-163.repo && yum update && yum clean all && yum makecache
#生成缓存
RUN yum update -y && yum makecache

##########################################基本软件####################################################
RUN \
   yum install -y vim openssh-clients openssl-devel openssh-server wget curl lrzsz supervisor git tree net-tools less telnet lsof sudo psmisc zip unzip python subversion && \
   yum clean all

#RUN yum install -y mysql-devel redis && yum clean all

##########################################oracle jdk###################################################
RUN \
  mkdir /mysoft && cd /mysoft && \
  wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz  && \
  #tar -zxvf jdk-8u121-linux-x64.tar.gz && \
  tar -zxvf $(ls) && \
  mv $(ls -d */) oracle-jdk && \
  mkdir -p /usr/local/java && \
  mv oracle-jdk /usr/local/java/oracle-jdk && \
  rm -rf /mysoft

ENV JAVA_HOME /usr/local/java/oracle-jdk/
ENV PATH $PATH:$JAVA_HOME/bin


##########################################nginx#########################################################
RUN yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel tar && yum clean all
#切换目录
RUN \
  mkdir /mysoft && \
  cd /mysoft && \
  wget http://nginx.org/download/nginx-1.11.10.tar.gz &&  \
  tar -zxvf nginx-1.11.10.tar.gz && \
  cd nginx-1.11.10 && \
  ./configure && \
  make && \
  make install && \
  rm -rf /mysoft

ENV PATH $PATH:/usr/local/nginx/sbin/


############################################gradle###########################################
#Gradle工具
ADD gradle-3.4-all.zip  /gradle-3.4-all.zip

#提前打包好的app需要的libs,Gradle组织方式
COPY gradle.lib.tar.gz /gradle.lib.tar.gz

RUN \
 yum install -y zip unzip python subversion && yum clean all && \
 #wget https://services.gradle.org/distributions/gradle-3.4-all.zip && \
 mkdir -p /usr/local/gradle && \
 unzip gradle-3.4-all.zip -d /usr/local/gradle && \
 mkdir -p /data/www/payment/ && \
 mkdir -p /data/www/comm_project

RUN tar -zxvf gradle.lib.tar.gz -C /usr/local/gradle/

#Gradle环境
ENV GRADLE_HOME /usr/local/gradle/gradle-3.4/

#修改Gradle下载lib目录
ENV GRADLE_USER_HOME /usr/local/gradle/.gradle

#PATH
ENV PATH $PATH:$GRADLE_HOME/bin

########################################设置环境变量######################################
#此处设置是因为当ssh登录docker容器,ENV设置的变量不生效问题
RUN \
  echo "JAVA_HOME=/usr/local/java/oracle-jdk/" >> /etc/profile && \
  echo "CLASSPATH=$JAVA_HOME/lib/" >> /etc/profile && \
  echo "GRADLE_HOME=/usr/local/gradle/gradle-3.4/" >> /etc/profile && \
  echo "GRADLE_USER_HOME=/usr/local/gradle/.gradle" >> /etc/profile && \
  echo "PATH=$PATH:$JAVA_HOME/bin:$GRADLE_HOME/bin:/usr/local/nginx/sbin/" >> /etc/profile && \
  echo "export PATH JAVA_HOME CLASSPATH GRADLE_HOME GRADLE_USER_HOME" >> /etc/profile


####################################app需要的脚本文件#####################################
RUN \
 mkdir -p /data/www/payment/ && \
 mkdir -p /data/www/comm_project

##增加app需要的脚本到目录:/data/www/payment/
ADD deploy.py /data/www/payment/deploy.py
ADD deploy_conf.ini /data/www/payment/deploy_conf.ini
#设置脚本可执行
RUN chmod a+x /data/www/payment/deploy.py

##增加app需要的脚本到目录:/data/www/comm_project/
ADD deploy.py /data/www/comm_project/deploy.py
ADD deploy_conf.ini /data/www/comm_project/deploy_conf.ini
RUN chmod a+x /data/www/comm_project/deploy.py


#######################################其他配置###########################################

#给root创建密码密码
RUN echo "root:root123" | chpasswd

# 添加测试用户hfqtest,密码hfqtest,并且将此用户添加到sudoers里  
RUN useradd hfqtest  
RUN echo "hfqtest:hfqtest" | chpasswd  
RUN echo "hfqtest   ALL=(ALL)       ALL" >> /etc/sudoers

# 初始化ssh登陆
#将sshd的UsePAM参数设置成no
#RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
RUN ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ''
RUN echo "RSAAuthentication yes" >> /etc/ssh/sshd_config
RUN echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config 

# 启动sshd服务并且暴露22端口  
RUN mkdir /var/run/sshd  
EXPOSE 22
EXPOSE 80 443
#EXPOSE 12007

#开机启动sshd
RUN systemctl enable sshd.service

#ENTRYPOINT ["/usr/sbin/sshd", "-D"]
CMD ["/usr/sbin/sshd", "-D"]
#CMD ["/usr/sbin/init"]

###############################################构建脚本####################################
#构建image镜像
#docker build -t hfq/centos7:eden .

#启动container后台运行提供sshd服务
#docker run -d -P --name <container name> hfq/centos7:eden

#进入sshd启动的container
#docker exec -it <container name or id> /bin/bash

#docker rm $(docker ps -a | grep "xxx/jedi:v5" | awk '{print $1}')

#操作记录
#docker run -d -p 30001:12007 -p 31001:22 -P --name hfq-jedi-smq-eden hfq/centos7:eden
#docker run -d -p 30002:12007 -p 31002:22 -P --name hfq-jedi-zfc-eden hfq/centos7:eden
#docker run -d -p 30003:12007 -p 31003:22 -P --name hfq-jedi-wx-eden hfq/centos7:eden
#docker run -d -p 30004:12007 -p 31004:22 -P --name hfq-jedi-zxf-eden hfq/centos7:eden
#docker run -d -p 30005:12007 -p 31005:22 -P --name hfq-jedi-wjl-eden hfq/centos7:eden
#docker run -d -p 30006:12007 -p 31006:22 -P --name hfq-jedi-liqiang-eden hfq/centos7:eden

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值