Dockerfile制作完整镜像

1、创建dockerfile

touch Dockerfile

2、编写镜像创建的过程

vi Dockerfile
FROM monidev.midea.com/library/centos:7.3.1611
MAINTAINER wangzy25
#install java
#RUN yum -y install java
ADD ./jdk-7u79-linux-x64.tar.gz /root
#ADD ./ecf.platform.web-0.0.1-SNAPSHOT.jar /apps/svr/
#ADD ./start.sh /apps/svr/
##set environment variable
ENV JAVA_HOME /root/jdk1.7.0_79
ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib
ENV PATH $JAVA_HOME/bin:$PATH
#set charset
ENV LANG "zh_CN.UTF-8"
#inatall app 
EXPOSE 80 443 8082
VOLUME ["/apps/logs/","/apps/svr/"]
#start app
CMD echo "start app ..."
#ENTRYPOINT java -jar /apps/svr/ecf.platform.web-0.0.1-SNAPSHOT.jar --server.port=8082 --spring.profiles.active=sit 
ENTRYPOINT /apps/svr/start.sh
CMD echo "started app success"

3、编写启动脚本

#!/bin/sh
source_path='.'
target_path='/apps/svr'
echo $target_path
cd /apps/svr
java -jar ecf.platform.web-0.0.1-SNAPSHOT.jar
#nohup java -jar ecf.platform.web-0.0.1-SNAPSHOT.jar --spring.profiles.active=sit > nohup.out & 2>&1 &
echo "$RUN_NAME started success."

4、以上是准备工作完毕,执行创建镜像命令:

docker build -t ecf/ecf.platform.web:v1 .
执行情况如下:
Sending build context to Docker daemon  231.3MB
Step 1/12 : FROM monidev.midea.com/library/centos:7.3.1611
 ---> 66ee80d59a68
Step 2/12 : MAINTAINER wangzy25
 ---> Running in 95eb6ed250b3
Removing intermediate container 95eb6ed250b3
 ---> b3daaa0abdc2
Step 3/12 : ADD ./jdk-7u79-linux-x64.tar.gz /root
 ---> 4be2ada71dad
Step 4/12 : ENV JAVA_HOME /root/jdk1.7.0_79
 ---> Running in d5773b40feb3
Removing intermediate container d5773b40feb3
 ---> 468212964a5e
Step 5/12 : ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib
 ---> Running in 89d7d2905fae
Removing intermediate container 89d7d2905fae
 ---> d7bcfd680dc4
Step 6/12 : ENV PATH $JAVA_HOME/bin:$PATH
 ---> Running in 449f18ccd8fa
Removing intermediate container 449f18ccd8fa
 ---> 7f2edde26efc
Step 7/12 : ENV LANG "zh_CN.UTF-8"
 ---> Running in 58d366405586
Removing intermediate container 58d366405586
 ---> 618e7427eda3
Step 8/12 : EXPOSE 80 443 8082
 ---> Running in 2f5bb0903093
Removing intermediate container 2f5bb0903093
 ---> 295cbde573c2
Step 9/12 : VOLUME ["/apps/logs/","/apps/svr/"]
 ---> Running in 276c6ff66bd2
Removing intermediate container 276c6ff66bd2
 ---> c7ec99c6bdfc
Step 10/12 : CMD echo "start app ..."
 ---> Running in 7fa8bfe22266
Removing intermediate container 7fa8bfe22266
 ---> 85e0e9fb1ec4
Step 11/12 : ENTRYPOINT /apps/svr/start.sh
 ---> Running in db3bf0d24f63
Removing intermediate container db3bf0d24f63
 ---> 0d924c5a24a5
Step 12/12 : CMD echo "started app success"
 ---> Running in 9d65d41a633b
Removing intermediate container 9d65d41a633b
 ---> 0f3a57a9ed58
Successfully built 0f3a57a9ed58
Successfully tagged ecf/ecf.platform.web:v1

5、启动镜像

docker run -d  --name ecf.platform.sit  -p 8082:8082 -v /apps/projects/sit/ecf.platform.web:/apps/svr -v /apps/logs/sit:/apps/logs  70dc22557af3

6、查看启动状况

docker ps

CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS              PORTS                                     NAMES
9411ebfea790        0f3a57a9ed58                             "/bin/sh -c /apps/sv…"   8 minutes ago       Up 8 minutes        80/tcp, 443/tcp, 0.0.0.0:8082->8082/tcp   ecf.platform.sit


猜你喜欢

转载自blog.csdn.net/waysoflife/article/details/80533993