docker-compose + nginx部署前後端分離的項目

安裝docker

安裝必要的系統工具

# 更新yum工具
yum update -y 
# 安裝必要的工具
yum install -y yum-utils device-mapper-persistent-data lvm2 

軟件源信息切換

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安裝

yum makecache fast
yum -y install docker-ce

配置鏡像加速器

tee /etc/docker/daemon.json <<-'EOF'
{
  "debug" : true,
  "registry-mirrors": ["https://dpayzz9i.mirror.aliyuncs.com"],
  "default-address-pools" : [
    {
      "base" : "172.31.0.0/16",
      "size" : 24
    }
  ]
}
EOF

啓動

systemctl daemon-reload
systemctl restart docker
systemctl enable docker

使用docker -v查看版本號

安裝docker-compose

安裝

curl -L "https://get.daocloud.io/docker/compose/releases/download/1.27.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

權限修改

chmod +x /usr/local/bin/docker-compose

使用docker-compose -v查看版本

image-20220319155725327

docker-compose.yml文件編寫

  version: '2' # docker 的版本

  services: # 配置的容器列表

  CONTAINER_NAME: # 容器的名稱

  image: BASE_IMAGE # 這個一個容器的基礎鏡像

  ports: # 你的容器需不需要做端口映射

  - "host_port:container_port"

  volumes: # 數據卷配置

  - host_dir:container_dir

  environment: # 環境變量(map 的配置方式 key: value)

  PARAM: VALUE

  environments: # 環境變量(數組的配置方式 - key=value)

  - PARAM=VALUE

  restart: always # 容器的重啓策略

  dns: # dns 的配置

  - 8.8.8.8

配置文件詳解

詳解鏈接

配置文件示例

version: '3.7'

services:
  film-service:
    container_name: film-service
    hostname: film-service
    image: adoptopenjdk/openjdk11
    volumes:
      # jar包的掛載地址
      # - 宿主機內jar包的地址(需要修改):容器內jar包的地址(無需修改)
      - /usr/software/film/film-0.0.1-SNAPSHOT.jar:/app/app.jar
      # 同步宿主機的時間到容器內
      - /etc/localtime:/etc/localtime
    privileged: true
    restart: always
    ports:
      - "9090:9090"
    # 啓動命令
    command: java -Xmx512m -jar /app/app.jar
    # 環境變量相關配置
    environment:
     #- spring.profiles.active=test
      # 啓動執行
      - server.port=9090
      - TZ=Asia/Shanghai
    networks:
      - film_network
 
  nginx:
    container_name: nginx-film
    hostname: nginx-film
    image: nginx
    volumes:
      # hostm目錄: container目錄
      - /usr/software/film/conf/:/etc/nginx/conf.d/
      - /usr/software/film-web/dist/:/etc/nginx/web/
      - /usr/software/film-admin/dist/:/etc/nginx/admin/
      - /etc/localtime:/etc/localtime
    environment:
      - TZ=Asia/Shanghai
    privileged: true
    restart: always
    ports:
      # "host_port: container_port"
      - "80:80"
      - "443:443"
    networks:
      - film_network
    deploy:
      # limit用於限制最大的資源使用數量,reservation爲最低的資源佔用量。
     resources:
       limits:
         cpus: '0.50'
         memory: 10M

networks:
  film_network:
    external: true

解決js、css文件404的情況

Vue項目配置

直接修改vue項目中的 vue.config.js文件,將基本路徑設置爲相對路徑

module.export {
	// 基本路徑
	publicPath:"./", // 可以設置成[相對路徑,這樣所有的資源都會被鏈接爲相對路徑,打出來的包可以被部署在任意路徑
	outputDir:“dist”, //打包時生成的生產環境構建文件的目錄
	assetsDir: ‘web’, // 放置生成的靜態資源 (js、css、img、fonts) 的 (相對於 outputDir 的) 目錄
}

image-20220319162817765

這樣打包出來的js、css文件路徑會是
image

dist/web/*.js

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章