linux + docker-compose 部署 jar + dist
linux + docker-compose 部署 jar + dist第一次使用docker-compose部署jar包和vue项目打包的dist文件夹,准备好Linux系统,并且已经使用FinalShell之类的工具连接成功,后台打包的jar包,前端打包的dist文件夹文章目录linux + docker-compose 部署 jar + dist一、在linux系统上安装docker-com
·
linux + docker-compose 部署 jar + dist
第一次使用docker-compose部署jar包和vue项目打包的dist文件夹,
下载demo
准备好Linux系统,并且已经使用FinalShell之类的工具连接成功,
后台打包的jar包,
前端打包的dist文件夹
文章目录
一、在linux系统上安装docker-compose
1.安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/v1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
版本自己选择,更改v1.29.2版本号就行了,最新版本查看
如果超时,请使用
curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
2.将可执行权限应用于二进制文件
sudo chmod +x /usr/local/bin/docker-compose
3.测试是否安装成功
docker-compose --version
二、想一想
所有的准备工作已经做完了,现在停下来想一想,jar包,dist文件夹我们必然要上传到Linux服务器,不然其他的都是扯淡,但是我们放到什么地方,怎样的目录结构,这个得想明白,不然部署完成后,回头在看,强迫症表示非常难受.
我想的目录结构
以上只是众多问题中的一个,现在想一想,捋一捋,下面正式开始:
三、部署后台jar
首先把项目打包成jar,上传到服务器指定的位置
docker-compose.yml文件配置
version: '3'
# 后台
services:
rhcms-api: #spring boot的服务名,服务名自定义
#容器名称
container_name: rhcms-api
#image是指定服务的镜像名称或镜像ID。如果镜像在本地不存在,Compose将会尝试拉取镜像。
image: java:8
restart: always
environment:
TZ: Asia/Shanghai
#ports用于映射端口的标签。使用HOST:CONTAINER格式或者只是指定容器的端口,宿主机会随机映射端口。
ports:
- "18089:18089"
#挂载文件夹
volumes:
- ./backend/RHCMS-0.0.1-SNAPSHOT.jar:/data/RHCMS-0.0.1-SNAPSHOT.jar
#启动容器后执行的命令
entrypoint: java -jar /data/RHCMS-0.0.1-SNAPSHOT.jar
还有网络什么的相关设置,不太懂,就没写.
这样就可以进入docker-compose.yml同级目录下
使用
docker-compose up 启动
docker-compose down 关闭
四、部署前端dist
首先把项目打包成dist,上传到服务器指定的位置
nginx.conf文件配置
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
# include /etc/nginx/conf.d/*.conf;
server {
listen 8000;
charset utf-8;
server_name 192.168.10.177;# 服务器地址或绑定域名
# start ---------------------------------------------------------------------------------------------
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
# location / {
# proxy_pass http://192.168.10.177:18089/;
# }
location /api/ {
proxy_pass http://192.168.10.177:18089/;
}
# end ---------------------------------------------------------------------------------------------
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
}
docker-compose.yml文件配置
version: '3'
# 后台
services:
rhcms-api: #spring boot的服务名,服务名自定义
#容器名称
container_name: rhcms-api
#image是指定服务的镜像名称或镜像ID。如果镜像在本地不存在,Compose将会尝试拉取镜像。
image: java:8
restart: always
environment:
TZ: Asia/Shanghai
#ports用于映射端口的标签。使用HOST:CONTAINER格式或者只是指定容器的端口,宿主机会随机映射端口。
ports:
- "18089:18089"
#挂载文件夹
volumes:
- ./backend/RHCMS-0.0.1-SNAPSHOT.jar:/data/RHCMS-0.0.1-SNAPSHOT.jar
#启动容器后执行的命令
entrypoint: java -jar /data/RHCMS-0.0.1-SNAPSHOT.jar
# 前端
rhcms-api-web:
container_name: rhcms-api-web
image: nginx:latest
restart: always
environment:
TZ: Asia/Shanghai
ports:
- "8000:8000"
volumes:
- ./frontend/nginx.conf:/etc/nginx/nginx.conf:ro
- ./frontend/dist/:/usr/share/nginx/html/:ro
command: [nginx-debug, '-g', 'daemon off;']
之后的mysql之类的就是同理可得,自己研究研究
本项目完整的docker-compose.yml文件配置
version: '3'
# 后台
services:
rhcms-api: #spring boot的服务名,服务名自定义
#容器名称
container_name: rhcms-api
#image是指定服务的镜像名称或镜像ID。如果镜像在本地不存在,Compose将会尝试拉取镜像。
image: java:8
restart: always
environment:
TZ: Asia/Shanghai
#ports用于映射端口的标签。使用HOST:CONTAINER格式或者只是指定容器的端口,宿主机会随机映射端口。
ports:
- "18089:18089"
#挂载文件夹
volumes:
- ./backend/RHCMS-0.0.1-SNAPSHOT.jar:/data/RHCMS-0.0.1-SNAPSHOT.jar
#启动容器后执行的命令
entrypoint: java -jar /data/RHCMS-0.0.1-SNAPSHOT.jar
# 后台的前端
rhcms-api-web:
container_name: rhcms-api-web
image: nginx:latest
restart: always
environment:
TZ: Asia/Shanghai
ports:
- "8000:8000"
volumes:
- ./frontend/nginx.conf:/etc/nginx/nginx.conf:ro
- ./frontend/dist/:/usr/share/nginx/html/:ro
command: [nginx-debug, '-g', 'daemon off;']
# minio
minio:
image: minio/minio:latest
container_name: minio
ports:
- "9000:9000"
- "9001:9001"
restart: always
command: server --console-address ":9001" /data
environment:
MINIO_ACCESS_KEY: admin
MINIO_SECRET_KEY: admin@123
logging:
options:
max-size: "50M"
max-file: "10"
driver: json-file
volumes:
- ./minio/data:/data
# mysql
mysql:
image: mysql:5.7.34
container_name: mysql_container
restart: always
ports:
- "3306:3306"
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/conf/my.cnf:/etc/my.cnf
environment:
- "MYSQL_DATABASE=root"
- "MYSQL_ROOT_PASSWORD=root123"
- "TZ=Asia/Shanghai"
更多推荐
已为社区贡献2条内容
所有评论(0)