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

news2024/9/20 13:17:26

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脚本

在这里插入代码片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2072440.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

set的所有操作

1.基本概念 2.构造和赋值 3.大小和交换 4.插入和删除 5.查找和统计 6.set和multiset的区别 7.pair对组创建 用p.first和p.second调用前后两个属性。 8.仿函数实现降序排列 自定义数据类型也一样用仿函数:

【ubuntu20.4 常用经验分享】

文章目录 背景:问题解答1、软件替换3、办公4、提供多少价值 总结 背景: 个人AI深度学习,在windows下很不方便,容易各种莫名错误,各种生态也不好 那么linux是一个选择,开始时候时保守安装了双系统&#xff…

QTableView的一行里添加两个按钮

我是光明正大地抄,作者说的欢迎转载 作者:李鹏 出处:http://www.cnblogs.com/li-peng/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接&#xff0…

基于Android Studio 多功能记事本-MySQL版

目录 一、项目演示 二、开发环境 三、项目详情 四、项目完整源码 一、项目演示 基于Android Studio 多功能记事本--MySQL版 二、开发环境 三、项目详情 1.启动页 这段代码主要实现了以下功能: 1. **延迟跳转**:在 StartActivity 中,使用…

polarctf靶场[WEB]cookie欺骗、upload、签到

[web]cookie欺骗 考点:cookie值 工具:Burp Suite抓包 根据题目提示,cookie欺骗,所以要在cookie值寻找关键 进入网页之后,说只有admin用户才能得到flag,而我们此时只属于普通访客 我们查看cookie值&…

如何使用ssm实现视频点播系统设计与实现+vue

TOC ssm142视频点播系统设计与实现vue 绪论 1.1 研究背景 信息化的世界,对于互联网就是一个无国界的传播过程。视频信息也像其他很多网络交流工具一样,时刻在给每一个人带来信息全球化的过程中自由发布个性化信息平台,这就是互联网给人们…

VTK随笔四:VTK基本数据结构

一、可视化数据的基本特点 离散性:为了让计算机能够获取、处理和分析数据,必须对无限、连续的空间体进行采样,生成有限的采样数据点,这些数据以离散点的形式存储,采样的过程是一个离散化的过程。数据具有规则或不规则…

东南大学和东北大学

其实我五点多就醒了,生物钟天生如此,没办法。 只是在人家家里,不方便过早地有动静,而我的脑子,也还在酒力影响之下,并没有完全清楚,所以又闭目养神了一会儿。 看了几次时间,终于6点了…

高仿115资源网dz论坛模板

源码介绍 高仿115资源网dz论坛模板,首先去DZ论坛下个PHP版本安装好,把我们提供的模版上传到[template]目录。 本套模板是dz论坛仿115资源网开发的模板,dz论坛是腾讯旗下的论坛系统,非常的好用。 源码下载 高仿115资源网dz论坛模…

C++ STL 关联容器

系列文章目录 CSTL迭代器iterator设计 https://blog.csdn.net/surfaceyan/article/details/126772555 C STL 序列式容器(一 vector list) https://blog.csdn.net/surfaceyan/article/details/126860166 C STL 序列式容器(二 deque slist) https://blog.csdn.net/surfaceyan/ar…

Vue中的methods方法与computed计算属性的区别

在创建的 Vue 应用程序实例中,可以通过 methods 选项定义方法。应用程序实例本身会代理 methods 选项中的所有方法,因此可以像访问 data 数据那样来调用方法。在模板中绑定表达式只能用于简单的运算。如果运算比较复杂,可以使用 Vue.js 提供的…

求解向量中连续子向量的最大和

开篇 本篇文章旨在求解向量中n个连续子向量的最大和。题目来源是《编程珠玑》第8章《算法设计技术》。 问题描述 输入:具有n个浮点数的向量x; 输出:输入向量的任何连续子向量中的最大和; 例如:输入向量为31,-41,59,26,-53,58,97,-93,-23,84; 那么输出就是从59到97五…

基于java+springboot+mysql校园预约自习室网站43642-计算机毕业设计项目选题推荐(免费领源码)

摘要 在社会快速发展的影响下,教育事业蓬勃发展,大大增加了学校的数量、多样性、教育质量等要求,使教育的管理和运营比过去更加困难。依照这一现实为基础,设计一个快捷而又方便的校园预约自习室网站是一项十分重要并且有价值的事情…

回归预测|基于北方苍鹰优化最小二乘支持向量机的数据预测Matlab程序NGO-LSSVM 多特征输入单输出 含基础程序

回归预测|基于北方苍鹰优化最小二乘支持向量机的数据预测Matlab程序NGO-LSSVM 多特征输入单输出 含基础程序 文章目录 前言回归预测|基于北方苍鹰优化最小二乘支持向量机的数据预测Matlab程序NGO-LSSVM 多特征输入单输出 含基础程序 一、NGO-LSSVM模型1. LSSVM(最小…

联网可视化:引领智能出行新时代

图扑车联网可视化系统整合数据监测与分析,提升交通管理效率,优化车辆调度,提高道路安全,为用户提供智能化、便捷的出行体验。

使用Python实现方波信号傅里叶变换

目录 概述 1 方波信号 1.1 问题描述 1.2 傅里叶级数的数学实现 2 函数实现 2.1 方波信号实现 2.2 方波信号的傅里叶函数 3 测试函数 3.1 测试原理 3.2 改变K值的波形变化 概述 本文主要介绍使用使用Python实现方波信号傅里叶变换的方法,笔者首先介绍了方…

如何使用ssm实现基于java的奶茶店管理系统的设计与实现

TOC ssm140基于java的奶茶店管理系统的设计与实现jsp 第一章 绪 论 1.1背景及意义 系统管理也都将通过计算机进行整体智能化操作,对于奶茶店管理系统所牵扯的管理及数据保存都是非常多的,例如管理员;主页、个人中心、用户管理、奶茶分类管…

Kubectl基础命令使用

一.Kubectl 基础命令 格式: kubectl [command] [TYPE] [NAME] [FLAGS] kubectl 是 Kubernetes 的命令行工具,用于管理 Kubernetes 集群。以下是一些常用的 kubectl 命令及其选项: 常用命令 获取资源 列出所有资源类型(Pods、De…

【C++】OJ习题 篇1

🚀个人主页:奋斗的小羊 🚀所属专栏:C 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 💥1、string💥1.1 字符串相加💥1.2 验证回文字符串💥1.3 反转…

【奇某信-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…