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
文章图片
项目截图
请求后台

docker部属springBoot+vue
文章图片
请求后台 项目地址 【docker部属springBoot+vue】项目地址

    推荐阅读