docker-compose自动化部署前后端项目--最终篇

docker-compose部署

一个项目肯定包含多个容器,每个容器都手动单独部署肯定费时费力。docker-compose可以通过脚本来批量构建镜
像和启动容器,快速的部署项目。
使用docker-compose部署主要是编写 docker-compose.yml 脚本。
项目结构
不论是 Dockerfile 还是 docker-compose.yml 脚本的编写都依赖上下文,所以需要明确部署文件夹的项目结构。
假设当前项目部署文件夹名为 auto ,那么它的结构如下:

- auto/
	- django_app/
		- 其他项目文件和文件夹
		- Dockerfile
		- entrypoint.sh
	- nginx/
		- Dockerfile
		- static
		- dist
		- default.conf
	- docker-compose.yml

两个文件夹从之前的文件夹冲拷贝。

现在就缺少decker-compose.yml文件

version: '3'
services:
    mariadb_v1: 
        image: mariadb:latest
        restart: always
        environment: 
             MARIADB_ROOT_PASSWORD: ****
             MARIADB_DATABASE: django_app
        ports:
             - "3308:3306"
        volumes:
             - mariadb_v1:/var/lib/mysql
    redis_v1:
        image: redis:alpine
        restart: always
		ports:
			- "6377:6379"
    django_app:
        depends_on: 
            - redis_v1
            - mariadb_v1
        # 要与文件夹名称一致
        build: ./django_app
        environment:
            ENV: production
        image: auto_django_app
        restart: always
        volumes:
            - app_logs:/app/logs
    nginx:
        depends_on:
            - django_app
        build: ./nginx
        image: auto_nginx
        restart: always
        ports:
            - "9290:80"
            - "9291:81"
        volumes:
            - nginx_logs:/var/log
volumes:
    mariadb_v1:
    app_logs:
    nginx_logs:                

把nginx中的default.conf文件进行修改

修改为auto下的代码环境的根目录名字,与compose里面的配置一一对应
在这里插入图片描述

修改代码部分,生产环境数据库配置:

与compose里面的配置一一对应
在这里插入图片描述
在这里插入图片描述然后在 auto 目录下运行命令 docker-compose -p auto_v1 up -d --build ,即可自动部署项目。

docker-compose -p auto_v1 up -d --build

报错:docker-compose.yml文件不能用tab键,记得用空格
在这里插入图片描述
注意:代码里面的数据库连接,我写数据库的容器名就会报错,连接不上,写服务器ip就行,按理说写数据库的容器名不会报错的。

最后,一键部署shell脚本

在这里插入代码片
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值