docker-compose安装
linux docker-compose安装失败解决_安装失败,请检查网络连接.或者手动下载到 /usr/bin/docker-compose 记得赋予执-CSDN博客
docker-compose 下载
https://download.csdn.net/download/weixin_73510682/88758452?spm=1001.2014.3001.5501
项目结构
txt 为windows文件类型 linux请去除后缀
mv 文件名.txt 文件名
--conf 配置文件 nginx 和redis
nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root /home/projects/front; #nginx-dockerfile挂载目录
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /prod-api/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://xmgl-server:8080/; #purchase-server为docker-compose.yml文件对应服务container_name
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
redis.conf
#解除本地限制 注释bind 127.0.0.1
#bind 127.0.0.1
#设置密码
#requirepass 123456
# 服务器运行模式,Redis以守护进程方式运行,默认为no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败,如果后面redis启动失败,就将这个注释掉
daemonize no
#默认为no,redis持久化,可以改为yes
appendonly yes
--db 数据库文件
--html 前端打包文件
--jar 后端打包文件
--编写docker-file
mysql-dockerfile
# 基础镜像
FROM mysql:5.6
# author
MAINTAINER xmgl
# 执行sql脚本
ADD ./db/*.sql /docker-entrypoint-initdb.d/
nginx-dockerflie
# 基础镜像
FROM nginx
# author
MAINTAINER xmgl
# 挂载目录
VOLUME /home/projects/front
# 创建目录
RUN mkdir -p /home/projects/front
# 指定路径
WORKDIR /home/projects/front
# 复制conf文件到路径
COPY ./conf/nginx.conf /etc/nginx/nginx.conf
# 复制html文件到路径
COPY ./html/dist /home/projects/front
redis-dockerfile
# 基础镜像
FROM redis
# author
MAINTAINER xmgl
# 挂载目录
VOLUME /home/projects/redis
# 创建目录
RUN mkdir -p /home/projects/redis
# 指定路径
WORKDIR /home/projects/redis
# 复制conf文件到路径
COPY ./conf/redis.conf /home/projects/redis/redis.conf
后端服务-dockerfile
# 基础镜像
FROM openjdk:8
# author
MAINTAINER xmgl
# 挂载目录
VOLUME /home/projects/jar
# 创建目录
RUN mkdir -p /home/projects/jar
# 指定路径
WORKDIR /home/projects/jar
# 复制jar文件到路径
COPY ./jar/*.jar /home/projects/jar/xmgl-admin.jar
# 启动应用
ENTRYPOINT ["java","-Dfile.encoding=utf-8","-jar","xmgl-admin.jar"]
docker-compose.yml
version : '3'
services:
mysql:
container_name: mysql
image: mysql:5.6
build:
context: .
dockerfile: mysql-dockerfile
ports:
- "3306:3306"
volumes:
- ./mysql/conf:/etc/mysql/conf.d
- ./mysql/logs:/logs
- ./mysql/data:/var/lib/mysql
command: [
'mysqld',
'--innodb-buffer-pool-size=80M',
'--character-set-server=utf8mb4',
'--collation-server=utf8mb4_unicode_ci',
'--default-time-zone=+8:00',
'--lower-case-table-names=1'
]
environment:
MYSQL_DATABASE: 'ruoyi-vue-activiti7' #数据库
MYSQL_ROOT_PASSWORD: root1234 #数据库root用户密码
redis:
container_name: redis
image: redis
build:
context: .
dockerfile: redis-dockerfile
ports:
- "6379:6379"
volumes:
- ./conf/redis.conf:/home/projects/redis/redis.conf #对应工作目录上的conf文件路径和redis-dockefile挂载目录路径
- ./redis/data:/data
command: redis-server /home/projects/redis/redis.conf
nginx:
container_name: nginx
image: nginx
build:
context: .
dockerfile: nginx-dockerfile
ports:
- "80:80"
volumes:
- ./html/dist:/home/projects/front #对应上工作目录和nginx-dockerfile挂载目录
- ./conf/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/logs:/var/log/nginx
- ./nginx/conf.d:/etc/nginx/conf.d
depends_on:
- xmgl-server
links:
- xmgl-server
xmgl-server: #后端镜像名称需要和dockerfile,nginx文件一致
container_name: xmgl-server
build:
context: .
dockerfile: xmgl-dockerfile
ports:
- "9800:9800"
volumes:
- ./jar/xmgl-admin.jar:/home/projects/server/xmgl-admin.jar #对应上工作目录和purchase-dockerfile挂载目录
- ./xmgl/logs:/home/projects/logs
- ./home/uploadPath:/home/projects/uploadPath
depends_on:
- mysql
- redis
links:
- mysql
- redis
==========================
在xmgl文件下运行
docker-compose build 打包项目
docker-compose up -d 运行项目
docker ps 查看运行的项目
docker logs 容器名 查看启动日志
===========更新项目
docker-compose down 停止所有容器
docker-compose build 重新打包
docker-compose up -d 启动
docker-compose up -d xmgl-server(服务名) 更新服务