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 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~