欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

前后端分离项目 docker部署

程序员文章站 2022-06-13 16:34:26
...

安装docker

# 1、yum 包更新到最新 
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、 安装docker,出现输入的界面都按 y 
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v
#启动docker
/bin/systemctl start docker.service

拉取镜像

docker pull java:8

后端打包

加入插件

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

点击 package进行打包,生成jar包

编写dockerfile文件

FROM java:8 
EXPOSE 8900 #暴露8900端口
ADD blog_api.jar app.jar #使用blog_api.jar命名为app
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar","--spring.profiles.active=prod"] #使用prod.properties配置文件

application-prod.properties

对应的localhost改成docker-compose里写的服务名
前后端分离项目 docker部署
前后端分离项目 docker部署

编写 docker-compose.yml文件

version: '3'
services:
  nginx:
    image: nginx
    container_name: nginx
    ports:
      - 80:80
      - 443:443
    links:
      - app
    depends_on:
      - app
    volumes:
      - /mnt/docker/docker-compose/nginx/:/etc/nginx/
      - /mnt/peppa/web:/peppa/web
      - /mnt/peppa/blog:/peppa/blog
    privileged: true #解决文件调用权限
    network_mode: "bridge" #设置网络模式,确保在一个网络下
  mysql:
    image: mysql:5.7.27
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=admin
  redis:
    image: redis:latest
  app:
    image: app
    container_name: app
    ports:
      - 8900:8900
    network_mode: "bridge"

前端

前端VUE项目
修改对应接口地址后
进行打包

npm run build

nginx

修改 root 路径为 linux服务器上 前端打包好的存放路径