docker部属springBoot+vue

vue部分

在vue项目根目录新建 Dockerfile文件和nginx.conf文件

Dockerfile文件
FROM nginx:1.15-alpine 
#从dockerHub上拉取nginx
COPY dist /usr/share/nginx/html
#把vue项目打包后的 dist文件夹放在服务器的/usr/share/nginx/html 路径下
COPY nginx.conf /etc/nginx/conf.d/nginx.conf
#把项目里的nginx.conf 退换掉nginx里的nginx.conf
EXPOSE 80
#容器外露到服务器的端口 

nginx.conf文件
server {
  listen 80;
  #监听端口
  root /usr/share/nginx/html;
#静态资源所在目录
  index index.html;
  #默认主页
  charset utf-8;

  location / {
    try_files $uri $uri/ /index.html;
  }
  #/-资源路径 有uri 访问uri没有就访问index.html
}

springBoot部分

一样项目根路径新建Dockerfile文件

Dockerfile文件
FROM openjdk:8-jdk-alpine
#从dcokerhub上拉取openjdk8
VOLUME /tmp
#在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
ADD target/*.jar app.jar
#拷贝打包后的jar包并且重命名
EXPOSE 8081
#容器外露到服务器的端口 
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom", "-Dserver.port=8081","-jar","/app.jar"]
# 为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT

把前,后台项目放到一个文件夹里,其实怎么放都行,为了方便,然后在文件夹根目录新建docker-compose.yml文件

docker-compose.yml文件
version: "3"
services:
  vue:
    build: ./vueElementUiDemo
    restart: always
    ports: 
      - 9527:80
    depends_on:
      - demo
  demo:
    build: ./demo
    restart: always
    ports:
      - 8081:8081
    depends_on: 
      - mysql
    environment:
      DATABASE_URL: jdbc:mysql://mysql:3306/study?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true
      DATABASE_USER: lp
      DATABASE_PASSWORD: lp123456
#注意DATABASE_URL 因为用了mysql8 部属后有问题 后面加&allowPublicKeyRetrieval=true
  mysql:
    image: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: study
      MYSQL_USER: lp
      MYSQL_PASSWORD: lp123456

服务器部署部分

我的项目上传在gitee上,so git clone

git clone https://gitee.com/XXX/XXXX.git

vue打包

cd vueXXX
npm install
npm run build

springBoot打包

cd springBootXXX
mvn clean package
mvn install
执行docker-compose.yml
cd 文件夹根目录
docker-compose up --build
可能服务器没有安装dcokerCompose需要安装

参考官方文档:https://docs.docker.com/compose/install/

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

容器内执行sql 脚本
$ docker cp study.sql 6ac113bac6a3:/tmp
//6ac113bac6a3 为 mysql运行镜像ID
$ docker exec -it 6ac113bac6a3  /bin/bash
tmp# mysql -u root -p
//输密码 root
 show databases;
 use study;
 source /tmp/study.sql
ok
docker部属springBoot+vue_第1张图片
项目截图

请求后台


docker部属springBoot+vue_第2张图片
请求后台
项目地址

项目地址

你可能感兴趣的:(docker部属springBoot+vue)