docker-compose 部署项目

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(服务名)  更新服务

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

20岁30年经验的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值