Dockerfile自定义镜像安装jdk8,nginx,后端jar包

 

1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
# 启动nginx服务
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
  
#启动后端jar包,日志打印不额外存储
nohup java -jar /usr/local/rep3.0/app/krm-admin-3.0.0.jar >/dev/null 2>& 1 &
 
#使这个脚本一直处于运行状态,如果不这样,当这个脚本命令执行结束后,docker容器会立即停止运行,所以这里需要让这个脚本一直运行,使docker容器一直处于运行状态
while [[ true ]];do
  sleep 1
done

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
FROM cenos:7.3.1611
# 设置UTF-8并配置环境变量
ENV echo "export LC_ALL=en_US.UTF-8" >> /etc/profile && source /etc/profile
# 在容器里面创建java目录
RUN mkdir /usr/local/java
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java
# 设置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#后端jar包
RUN mkdir -p /usr/local/rep3.0/app
#ADD krm-admin-3.0.0.jar /usr/local/rep3.0
#配置nginx
RUN yum -y install make gcc gcc-c++ pcre-devel zlib-devel
#RUN yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
ADD nginx-1.12.0.tar.gz /usr/local
RUN cd /usr/local/nginx-1.12.0 && ./configure && make && make install
COPY nginx.conf /usr/local/nginx/conf/nginx.conf
 
#将启动脚本拷贝到容器
COPY run.sh  /usr/local/rep3.0
RUN chmod 777 /usr/local/rep3.0/run.sh
#对外暴露9080,8082端口,暴不暴露端口没有什么影响,重要的是要在启动的时候使用-p映射宿主机端口:容器端口,暴露端口你也得使用-p映射端口
EXPOSE 9080 8082
#通过脚本同时启动后端jar包和nginx
CMD ["sh","/usr/local/rep3.0/run.sh"]

  

1
2
3
4
5
6
7
8
9
10
docker build -t rep:3.0 ./
 
 
docker run --restart always -p 80:80 -p 8082:8082 --name rep -d rep:3.0
 
 
docker run --restart always -p 9080:9080  -p 8082:8082 --name rep3.0 \
-v $PWD/rep3.0/app:/usr/local/rep3.0/app \
-v $PWD/rep3.0/html:/usr/local/nginx/html \
-d rep:3.0

  

  

 
 
posted @   咕嚕  阅读(422)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示