一图胜千言

目标

想将VueJs,Spring boot,MongoDB全部都放到Docker中运行,并且做到VueJs和Spring boot在不同都Docker容器中。

Docker带来的变化

开发机上面,只需要好安装好相应的开发语言的编译环境和开发工具,Docker的环境就可以了。开发机上面无需安装一大堆的数据库,Web服务器等中间件,这些中间件都可以安装到Docker里面去。

MongoDB

安装MongoDB的Docker镜像

docker pull mongo

运行MongoDB容器

docker run --name mongo -p 27017:27017 -d mongo

Spring Boot

Spring Boot目录结构

Spring Boot打包

./mvnw clean && ./mvnw package

这里会在target文件夹下面生成demo-0.0.1-SNAPSHOT.jar。

Spring Boot的Dockerfile

# Start with a base image containing Java runtime
FROM openjdk:8-jdk-alpine# Add a volume pointing to /tmp
VOLUME /tmp# Make port 8882 available to the world outside this container
EXPOSE 8882# The application's jar file
ARG JAR_FILE=target/demo-0.0.1-SNAPSHOT.jar# Add the application's jar to the container
ADD ${JAR_FILE} demo.jar# Run the jar file
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/demo.jar"]

Docker编译Spring Boot镜像

docker build -t spring-boot-demo .

运行Spring boot的Docker容器

docker run -p 8882:8882 --link mongo --name spring-boot-demo -d spring-boot-demo

VueJs

VueJs目录结构

VueJs的Dockerfile

# production stage
FROM nginx:stable-alpine as production-stage
COPY nginx.conf /etc/nginx/nginx.conf
COPY ./dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

VueJs镜像里面的nginx.conf


#user  nobody;
worker_processes  auto;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;# 反向代理的集群upstream service_spring_boot {server spring-boot-demo:8882;}default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;gzip  on;server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;# docker 日志输出位置access_log /dev/stdout;location / {root   /usr/share/nginx/html;index  index.html index.htm;}# 反向代理代理配置location /api/ {proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://service_spring_boot/api/;}location /report.html {alias /var/nginx/html/report.html;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}}

VueJs的镜像制作

docker build -t vuejs-demo-app .

VueJs运行docker容器

docker run -p 8080:80 --link spring-boot-demo --name vuejs-demo-app -d vuejs-demo-app

检查docker进程

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
f9c0d7ca8c4e        vuejs-demo-app      "nginx -g 'daemon of…"   28 hours ago        Up 6 hours          0.0.0.0:8080->80/tcp       vuejs-demo-app
82b55e5dfde7        spring-boot-demo    "java -Djava.securit…"   28 hours ago        Up 6 hours          8882/tcp                   spring-boot-demo
c87683497717        mongo               "docker-entrypoint.s…"   28 hours ago        Up 6 hours          0.0.0.0:27017->27017/tcp   mongo

检查页面效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PtmF1ZNA-1585646210136)(https://oscimg.oschina.net/oscnet/5b09a1ba1d1febefd810126e55b58750ed2.jpg “spring-boot-vuejs-mongo-docker效果图”)]

GitHub源代码

  • spring-boot-vuejs-mongo–docker
  • vuejs-nginx-docker

参考

  • docker run

Docker中Spring boot+VueJS+MongoDB的前后端分离哲学摔跤相关推荐

  1. 记一次Spring boot 和Vue的前后端分离的入门培训

    记一次Spring boot 和Vue的前后端分离的入门培训 由于公司之前是写C#的,现在要转 Java分布式 + vue,所以进行一次前后端的简单培训. 前端工具和环境: Node.js V10.1 ...

  2. 基于Spring boot + Mybatis +Netty 实现前后端分离的聊天App,部署到阿里云线上服务器...

    前后端分离Spring boot 项目部署 了解前后端分离项目 配置云服务器 java maven tomcat nginx mysql 部署后端项目 部署前端项目 部署Java环境 1.下载JDK软 ...

  3. 鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统

    鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统 1. 项目背景 一.随着公司的快速发展,企业人员和经 ...

  4. Spring Boot + Vue.js 实现前后端分离(附源码)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者: 梁小生0101 链接:juejin.im/post/5c6 ...

  5. Spring Boot + Vue + Shiro 实现前后端分离、权限控制

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:http://sina.lt/gauR 本文总结自实习中对项 ...

  6. Spring Boot + Vue + Shiro 实现前后端分离、权限控制 (附源码)

    点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 原项目采用Springboot+freemarker模版,开发过程中觉得前端逻辑写的实在恶心,后端Controller层还必须返回Free ...

  7. Java Spring boot element ui activiti前后端分离,流程审批,权限管理框架

    基于react ant design pro typescript 技术框架已经重磅推出 预览地址 系统介绍 是什么? 使用springboot,activiti,mybatis,vue elemen ...

  8. VUE+Spring Boot整合MyBatis实现前后端分离项目壁纸网站

    目录 前言 一.项目运行 二.环境需要 三.技术栈 四.项目说明 五.后端代码 前言 每次换桌面,壁纸总是不好找,搜索图片得不到好的索引与反馈,很难找到自己喜欢的壁纸,而壁纸网站可以免去我们去寻找壁纸 ...

  9. 企业电子招标采购系统源码Spring Cloud + Spring Boot + MybatisPlus + Redis + Layui + 前后端分离 + 二次开发

    项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求.在企业里建立一个公平.公开.公正的采购环境,最大限度控制采购成本至关重要.符合国家电子招投标法律法规 ...

最新文章

  1. SPQuery简单使用示例
  2. 职场中有哪些沟通的小技巧?
  3. 单(liu_runda学长的神题)
  4. 《趣学Python编程》——2.3 使用变量
  5. VALSE 视觉资源汇总(视频+PPT+文章解读,持续更新)
  6. js实现无缝循环滚动
  7. 计算机活动感悟怎么写,计算机教学心得体会范文五篇.doc
  8. mysql中的lgwr_MySQL Replication和Oracle logical standby的原理对比
  9. 使用python解析C代码
  10. Educational Codeforces Round 25 G. Tree Queries
  11. 在你的网站中使用 AdSense广告
  12. 解决织梦CMS友情链接的字数个数限制
  13. JavaWeb在线商城系统(java+jsp+servlet+MySQL+jdbc+css+js+jQuery)
  14. python idle免安装绿色版_【亲测能用】Python2.5.1绿色版【Python2.5.1中文版】免安装版安装包免费下载-羽兔网...
  15. 为什么不要去外包公司?
  16. FBReader 探究 2
  17. Python学习笔记 TypeError: not all arguments converted during string formatting
  18. 淘宝理财 中证500 中证300 基金收益计算
  19. SpringCloud Gateway网关统一聚合Swagger接口文档(knife4j),实现通过网关统一文档地址查看所有子服务的接口文档
  20. 洛谷:玩具谜题,C语言

热门文章

  1. vue slot 使用
  2. 2048小游戏的制作和算法思路讲解
  3. elisa标准曲线怎么做_ELISA标准曲线的绘制方法
  4. 修改虚拟机下的网络和ip设置
  5. 刷脸支付通过人脸识别就可以完成付款
  6. 3D视觉应用案例:法兰件/引擎盖/控制臂上料,轮毂抓取上架
  7. NOIP201002接水问题 题解
  8. design短语的用法总结_design的短语
  9. K-Means聚类中国城市
  10. 2012元旦小品 网络达人孔乙己参加招聘面试