【java】docker搭建java 服务器

最近使用到springboot,其中涉及到docker部署。本次搭建为前后端文件分享的形式。

为了使docker 容器都在同一网段,使用命令创建虚拟网络

docker network create --subnet=172.25.0.0/24 docker_default

1、编写dockerfile 文件

FROM java:latest
ARG JAR_FILE=./jar/*.jar
COPY ${JAR_FILE} /home/webapp/jar/app.jar
COPY ./jar/lib/ /home/webapp/jar/lib/
ENV TZ=Asia/Shanghai
ENTRYPOINT ["java","-Dloader.path=/home/webapp/jar/lib/","-jar","/home/webapp/jar/app.jar","--spring.profiles.active=prod"]

生成应用镜像

docker build -t webapp:2.0.0 .

启动镜像

docker run -d \
--name webapp \
--net docker_default \
--ip 172.25.0.12 \
-p 8000:8000 \
-e "TZ=Asia/Shanghai" \
-v ~/www/webapp/data/:/home/webapp/ \
-v ~/www/webapp/jar:/home/webapp/jar \
webapp:2.0.0

此时正常启动的话,可以访问到java程序了

2、nginx服务器配置

拉取最新镜像

docker pull nginx

配置虚拟主机

server{
    listen 80;
    server_name java.test;
    index index.html;
    root  /usr/share/nginx/html/webapp/dist;  #前端静态文件上传的路径

    # 避免访问出现 404 错误
    location / {
      try_files $uri $uri/ @router;
      index  index.html;
    }

    location @router {
      rewrite ^.*$ /index.html last;
    }

    # 接口
    location /api {
      proxy_pass http://172.25.0.12:8000; #对应java启动的地址
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Forwarded-Port $server_port;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
    }
}

启动nginx docker 容器

docker run -itd --name gdtjj_nginx --net docker_default \
--ip 172.25.0.13 -p 80:80 --restart=always \
-v ~/www/webapp/nginx/conf.d:/etc/nginx/conf.d \
-v ~/www/webapp/nginx/logs:/var/log/nginx \
-v ~/www/webapp/nginx/cert:/etc/nginx/cert \
-v ~/www/webapp/nginx/html:/usr/share/nginx/html \
--link gdtjj_webapp:webapp nginx

配置完成后重启,即可访问绑定的java.test 了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值