vue部分
在vue項目根目錄新建 Dockerfile文件和nginx.conf文件
Dockerfile文件
FROM nginx:1.15-alpine
#從dockerHub上拉取nginx
COPY dist /usr/share/nginx/html
#把vue項目打包后的 dist文件夾放在服務(wù)器的/usr/share/nginx/html 路徑下
COPY nginx.conf /etc/nginx/conf.d/nginx.conf
#把項目里的nginx.conf 退換掉nginx里的nginx.conf
EXPOSE 80
#容器外露到服務(wù)器的端口
nginx.conf文件
server {
listen 80;
#監(jiān)聽端口
root /usr/share/nginx/html;
#靜態(tài)資源所在目錄
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目錄下創(chuàng)建一個臨時文件并把它鏈接到容器中的/tmp目錄
ADD target/*.jar app.jar
#拷貝打包后的jar包并且重命名
EXPOSE 8081
#容器外露到服務(wù)器的端口
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom", "-Dserver.port=8081","-jar","/app.jar"]
# 為了縮短 Tomcat 的啟動時間淑蔚,添加java.security.egd的系統(tǒng)屬性指向/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
服務(wù)器部署部分
我的項目上傳在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
執(zhí)行docker-compose.yml
cd 文件夾根目錄
docker-compose up --build
可能服務(wù)器沒有安裝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
容器內(nèi)執(zhí)行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
項目截圖
請求后臺
請求后臺