docker build

简介:

file_dockerfile

# Tomcat
# Version 0.0.1

# GET_IMAGE
FROM 192.168.0.216:5000/centos

# MAINTAINER_INFO
MAINTAINER hongxue hongxue@showjoy.com

# YUM
#RUN rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 
#RUN yum clean all
RUN yum -y install net-tools openssh-server wget curl elinks vim-enhanced openssh-clients lsof rsync 

# SSH
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN sed -i 's/session    required     pam_loginuid.so/#session    required     pam_loginuid.so/g' /etc/pam.d/sshd
RUN mkdir /var/run/sshd

RUN echo "root:3dq2w3y2" | chpasswd
RUN mkdir /root/.ssh/
RUN echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAs+W8Wb/++MjXk3jndcF7676mjKlHJcPVoD2iTVTwvQEIFzn8D98PhJKp+BHwPbtjOrQr4LNlP7rBWFOK7tb4tLyTkcJVZ0s11Ovx0+OgIXpadstjKxSowW782FBiIL2nR3DKobWB26ccbC4xT0DFfctifdf4KN7B9ZO/owrAcFtIgAfmZtoAHrN5GktldazSvtYep79JW/sA3TV6a2LD9lNtnh5yA8+6qAwHLFkwqKYkiL7I7NEYVDET995OYpHowyG3kAgaYNNf69NAX1YqbmgjJsvpb8SPa31vp2S2ru8iIF5wP0O2VgpALK4PRuVN1VmOPTr2vtzNXXdXVKYB0w== root@hongxue_225" >> /root/.ssh/authorized_keys

# PORT
EXPOSE 22
EXPOSE 8080
EXPOSE 8009
EXPOSE 8005
EXPOSE 8443

# ADD Tomcat
ADD tomcat /usr/local/tomcats/tomcat

# ADD JDK
ADD java /usr/local/java

RUN echo "" >> /etc/profile
RUN echo "JAVA_HOME=/usr/local/java" >> /etc/profile
RUN echo "JAVA_BIN=/usr/local/java/bin" >> /etc/profile
RUN echo "PATH=$PATH:$JAVA_BIN" >> /etc/profile
RUN echo "CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar" >> /etc/profile
RUN echo "export JAVA_HOME JAVA_BIN PATH CLASSPATH" >> /etc/profile

# Start_All_Service
#RUN mkdir -p /var/log/supervisor
#COPY supervisord.conf /etc/supervisord.conf

#CMD ["/usr/bin/supervisord"]
CMD ["/usr/sbin/sshd","-D"]



file_build.sh

#!/bin/bash
server_addr="192.168.0.225"
server_file="/root/deploy/server_list.txt"
server_mod_CI="/root/deploy/ShowJoy-Module-CI.sh"

other_dir="/root/deploy/Other"
ui_dir="/root/deploy/UI"
service_dir="/root/deploy/Service"

local_addr=$(ifconfig eth0 | grep 'inet addr' | awk -F':' '{print $2}' | awk '{print $1}')
line=$(docker ps -a | grep -v 'CONTAINER ID' | wc -l)
ssh=$[$line * 10 + 10000]
http=$[$line * 10 + 10001]
shutdown=$[$line * 10 + 10002]
ajp=$[$line * 10 + 10003]
redirect=$[$line * 10 + 10004]




read -p "Please input service type [ jenkins|tomcat ] : " service_name
read -p "Please input item name : " name
docker run -d -it --name ${name} -v /etc/localtime:/etc/localtime:ro -p ${ssh}:22 -p ${http}:8080 -p ${shutdown}:8005 -p ${redirect}:8443 -p ${ajp}:8009 $service_name


if [ ${service_name} == "tomcat" ]
then
    ssh root@${server_addr} "echo ${name} ${server_addr} ${ssh} ${http} >> ${server_file}"
    read -p "Please input item type : [UI|Service|Other]:" type

    item_name=$(echo ${name} | awk -F'-' '{print $1}')
    case "${type}" in
        [Uu][Ii])
            ssh root@${server_addr} "cp -rf ${server_mod_CI} ${ui_dir}/ShowJoy-${item_name}-CI.sh"
            ssh root@${server_addr} "sed -i s/Host/${local_addr}/g ${ui_dir}/ShowJoy-${item_name}-CI.sh"
            ssh root@${server_addr} "sed -i s/Item/${name}/g ${ui_dir}/ShowJoy-${item_name}-CI.sh"
        ;;

        [Ss][Ee][Rr][Vv][Ii][Cc][Ee])
            ssh root@${server_addr} "cp -rf ${server_mod_CI} ${service_dir}/ShowJoy-${item_name}-CI.sh"
            ssh root@${server_addr} "sed -i s/Host/${local_addr}/g ${service_dir}/ShowJoy-${item_name}-CI.sh"
            ssh root@${server_addr} "sed -i s/Item/${name}/g ${service_dir}/ShowJoy-${item_name}-CI.sh"
        ;;

        [Oo][Tt][Hh][Ee][Rr])
            ssh root@${server_addr} "cp -rf ${server_mod_CI} ${other_dir}/ShowJoy-${item_name}-CI.sh"
            ssh root@${server_addr} "sed -i s/Host/${local_addr}/g ${other_dir}/ShowJoy-${item_name}-CI.sh"
            ssh root@${server_addr} "sed -i s/Item/${name}/g ${other_dir}/ShowJoy-${item_name}-CI.sh"
        ;;

        *)
            echo "Bad name!!! Tomcat type is a [ui|service|other]"
            exit 1;
        ;;
    esac 
fi
相关文章
|
前端开发 Docker 容器
Docker - build 命令后点号 & .dockerignore 文件
Docker - build 命令后点号 & .dockerignore 文件
537 0
Docker - build 命令后点号 & .dockerignore 文件
|
4月前
|
缓存 Docker 容器
Docker build 命令详解
Docker build 命令详解
52 0
|
4月前
|
容器
竟有人因为docker-compose build参数搞垮了1星期
事情是这样的。 我从上星期开始,修改项目的源代码,然而提交了多次,容器代码并没有改变 后来在一遍文章上发现,还是要重新build,本以为找到了救星了。 奈何发现执行docker-compose build,容器并没有重写,明明我是写了的,为什么会这样呢?
42 0
|
8月前
|
缓存 Docker 容器
Docker build 命令详解
Docker build 命令详解
143 0
|
9月前
|
存储 缓存 开发工具
42-Docker-Docker命令详解-docker build
42-Docker-Docker命令详解-docker build
|
9月前
|
Ubuntu Linux 开发工具
docker build stress命令
stress 可以对linux机器做压力测试,是一个比较好用的命令
75 0
|
10月前
|
Serverless Docker 容器
FC Build 遇到了启动 Docker 失败的问题
FC Build 遇到了启动 Docker 失败的问题
56 2
|
10月前
|
前端开发 Go Docker
docker build 的替代品 build ah
docker build 的替代品 build ah
223 0
|
Cloud Native Java 应用服务中间件
【云原生 | 15】Docker commit与Docker build比较
最直观的理由就是,commit会把当前容器运行的日志等文件也打包到镜像中造成镜像体积偏大。从软件版本管理角度讲,Dockerfile本身是脚本文件,是可以版本化的。理论上使用Dockerfile,在任何时候任何机器上都可以重演镜像制作过程制作出一模一样的镜像,这是非常有利于工程化的。强烈建议使用Dockerfile来制作镜像...
258 0
【云原生 | 15】Docker commit与Docker build比较
|
缓存 Docker 容器
Docker命令详解(二):docker build
创建自定义镜像,常用选项说明 备注:创建自定义镜像一般都是配合Dockerfile。 docker build [OPTIONS] OPTIONS 描述 --build-arg=[] 设置镜像创建时的变量; --cpu-shares 设置 cpu 使用权重; --cpu-peri.
1738 0