Docker部署开源项目Django-CMS企业内容管理系统

news2025/1/31 11:20:12

Docker部署开源项目Django-CMS企业内容管理系统

  • 一、Django-CMS介绍
    • 1.1 Django-CMS简介
    • 1.2 Django-CMS特点
  • 二、本地环境介绍
    • 2.1 本地环境规划
    • 2.2 本次实践介绍
  • 三、本地环境检查
    • 3.1 检查Docker服务状态
    • 3.2 检查Docker版本
    • 3.3 检查docker compose 版本
  • 四、下载django-cms-quickstart
    • 4.1 django-cms-quickstart介绍
    • 4.2 下载django-cms-quickstart
    • 4.3 查看Dockerfile文件
    • 4.4 查看docker-compose.yml文件
  • 五、部署Django-CMS
    • 5.1 构建镜像
    • 5.2 启动database_default容器
    • 5.3 数据库迁移
    • 5.4 创建用户
    • 5.5 部署Django-CMS
    • 5.6 检查Django-CMS容器状态
  • 六、访问Django-CMS
    • 6.1 进入后台管理登录页面
    • 6.2 创建测试网站
    • 6.3 访问测试网站效果

一、Django-CMS介绍

1.1 Django-CMS简介

Django-CMS是一款基于Django框架的开源企业内容管理系统,它功能实用、安全可靠,支持拖拽上传图片、轮播图、Docker 部署等功能,可轻松进行二次开发,多用于构建企业官网。

1.2 Django-CMS特点

  • 分层页面
  • 对多语言网站的广泛内置支持
  • 多站点支持
  • 草稿/发布工作流
  • 版本控制
  • 复杂的发布体系结构,也可以在您自己的应用程序中使用
  • 前端内容编辑
  • 嵌套插件的分层内容结构
  • 您自己的应用程序可以挂钩的可扩展导航系统
  • SEO 友好的网址
  • 旨在完全集成到其他应用程序中

二、本地环境介绍

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为centos7.6。

hostnameIP地址操作系统版本Docker版本
jeven192.168.3.166centos 7.620.10.17

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎使用;
2.在Docker环境下成功部署Django-CMS企业内容管理系统。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

[root@jeven ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2023-06-10 00:48:40 CST; 16h ago
     Docs: https://docs.docker.com
 Main PID: 9546 (dockerd)
    Tasks: 15
   Memory: 160.7M

3.2 检查Docker版本

检查Docker版本

[root@jeven ~]# docker -v 
Docker version 20.10.17, build 100c701

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

[root@jeven ~]# docker compose version
Docker Compose version v2.6.0

四、下载django-cms-quickstart

4.1 django-cms-quickstart介绍

此版本使用运行的Python 3.9以及Django 3.2和Django CMS 3.11的最新版本。

4.2 下载django-cms-quickstart

  • 下载django-cms-quickstart
[root@jeven data]# git clone https://github.com/django-cms/django-cms-quickstart.git
Cloning into 'django-cms-quickstart'...
remote: Enumerating objects: 301, done.
remote: Counting objects: 100% (118/118), done.
remote: Compressing objects: 100% (62/62), done.
remote: Total 301 (delta 91), reused 56 (delta 56), pack-reused 183
Receiving objects: 100% (301/301), 88.28 KiB | 0 bytes/s, done.
Resolving deltas: 100% (171/171), done.

  • 查看目录结构
[root@jeven data]# cd django-cms-quickstart/
[root@jeven django-cms-quickstart]# tree -L 2 ./
./
├── backend
│   ├── asgi.py
│   ├── __init__.py
│   ├── settings.py
│   ├── static
│   ├── templates
│   ├── urls.py
│   └── wsgi.py
├── docker-compose.yml
├── Dockerfile
├── LICENSE
├── manage.py
├── README.md
├── requirements.in
└── requirements.txt

3 directories, 12 files

4.3 查看Dockerfile文件

查看Dockerfile文件内容

[root@jeven django-cms-quickstart]# cat Dockerfile 
FROM python:3.9
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
RUN python manage.py collectstatic --noinput
CMD uwsgi --http=0.0.0.0:80 --module=backend.wsgi

4.4 查看docker-compose.yml文件

查看docker-compose.yml文件内容

[root@jeven django-cms-quickstart]# cat docker-compose.yml 
version: "3"

services:
  web:
    # the application's web service (container) will use an image based on our Dockerfile
    build: .
    # map the internal port 80 to port 8000 on the host
    ports:
      - "8000:80"
    # map the host directory to app (which allows us to see and edit files inside the container)
    volumes:
      - ".:/app:rw"
      - "./data:/data:rw"
    # the default command to run whenever the container is launched
    command: python manage.py runserver 0.0.0.0:80
    # the URL 'postgres' or 'mysql' will point to the application's db service
    networks:
      - djangocmsnet

    env_file: .env-local

  database_default:
    # Select one of the following db configurations for the database
    image: postgres:13.5-alpine
    ports:
      - "5432:5432/tcp"  # allow your local dev env to connect to the db
    environment:
      POSTGRES_DB: "db"
      POSTGRES_PASSWORD: "password"
      POSTGRES_HOST_AUTH_METHOD: "trust"
      SERVICE_MANAGER: "fsm-postgres"

    networks:
      - djangocmsnet

    volumes:
      - ".:/app:rw"

networks:
  djangocmsnet:

五、部署Django-CMS

5.1 构建镜像

构建镜像django-cms-quickstart_web

docker compose build web

在这里插入图片描述

查询本地镜像

[root@jeven django-cms-quickstart]# docker images |grep web
django-cms-quickstart_web                                   latest                 c2c85dab6120   29 minutes ago   1.15GB
lihaixin/webssh2                                            ssh                    2e477b65711b   2 years ago      15.8MB

5.2 启动database_default容器

启动database_default容器

docker compose up -d database_default
[root@jeven django-cms-quickstart]# docker compose up -d database_default
[+] Running 9/9
 ⠿ database_default Pulled                                                                                                  24.9s
   ⠿ 59bf1c3509f3 Already exists                                                                                             0.0s
   ⠿ c50e01d57241 Pull complete                                                                                              0.7s
   ⠿ a0646b0f1ead Pull complete                                                                                              0.8s
   ⠿ 08018e47fc43 Pull complete                                                                                              8.2s
   ⠿ 6014f2775635 Pull complete                                                                                              8.3s
   ⠿ 85760f97d4b8 Pull complete                                                                                              8.4s
   ⠿ 3e07f59f91db Pull complete                                                                                              8.4s
   ⠿ 3f86c399b0a1 Pull complete                                                                                              8.5s
[+] Running 2/2
 ⠿ Network django-cms-quickstart_djangocmsnet          Created                                                               0.1s
 ⠿ Container django-cms-quickstart-database_default-1  Started                                                               0.5s

5.3 数据库迁移

数据库迁移

docker compose run web python manage.py migrate

在这里插入图片描述

5.4 创建用户

创建Django-CMS的管理用户和密码。

docker compose run web python manage.py createsuperuser

在这里插入图片描述

5.5 部署Django-CMS

使用docker compose快速一键部署Django-CMS

[root@jeven django-cms-quickstart]# docker compose up -d
[+] Running 2/2
 ⠿ Container django-cms-quickstart-web-1               Started                                                               0.8s
 ⠿ Container django-cms-quickstart-database_default-1  Started                                                               0.7s

5.6 检查Django-CMS容器状态

检查Django-CMS容器状态

[root@jeven django-cms-quickstart]# docker compose ps
NAME                                       COMMAND                  SERVICE             STATUS              PORTS
django-cms-quickstart-database_default-1   "docker-entrypoint.s…"   database_default    running             0.0.0.0:5432->5432/tcp, :::5432->5432/tcp
django-cms-quickstart-web-1                "python manage.py ru…"   web                 running             0.0.0.0:8000->80/tcp, :::8000->80/tcp

六、访问Django-CMS

6.1 进入后台管理登录页面

访问地址:http://192.168.3.166:8000/admin
账号密码:root/admin,为之前设置好的管理员账号和密码。

在这里插入图片描述

6.2 创建测试网站

  • 创建一个测试网站,选择新建网页。

在这里插入图片描述

  • 输入网站的基本信息,以及网站内容。

在这里插入图片描述

在这里插入图片描述

6.3 访问测试网站效果

访问地址:http://192.168.3.166:8000/

在这里插入图片描述

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

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

相关文章

JS 之 事件Event对象详解(属性、方法、自定义事件)

一、Event对象 1、简介 ​ 事件event对象是指在浏览器中触发事件时,浏览器会自动创建一个event对象,其中存储了本次事件相关的信息,包括事件类型、事件目标、触发元素等等。浏览器创建完event对象之后,会自动将该对象作为参数传…

NLP——WordNet;Word Similarity; Word Sense Disambiguition

WordNet WordNet是一个广泛使用的英语词汇数据库和语义网络。它由普林斯顿大学认知科学实验室开发,旨在帮助人们理解单词之间的关系和意义。WordNet的主要目标是将英语词汇组织成一种层次结构,其中每个词都与其他相关词联系起来。WordNet中的单词按照它们…

[6]PCB设计实验|认识常用元器件|电阻器|18:30~19:00

目录 一、电阻器主要用途 1. 稳定和调节电路中的电流和电压 2. 作为分流、分压和负载使用 二、常见电阻器 1. 贴片电阻 2. 热敏电阻 3. 限流电阻 4. 可调电阻 5. 排阻(网络电阻) 三、几种常用电阻器的结构特点 四、电阻的参数 1. 额定功率 电阻器功率的表示 ​2…

自学黑客/网络安全工具软件大全100套

黑客工具软件大全100套 1 Nessus:最好的UNIX漏洞扫描工具 Nessus 是最好的免费网络漏洞扫描器,它可以运行于几乎所有的UNIX平台之上。它不止永久升级,还免费提供多达11000种插件(但需要注册并接受EULA-acceptance–终端用户授权…

【六一儿童节】回忆一下“童年的记忆”

文章目录 [TOC](文章目录) 前言一、EasyX带我们步入了童话的世界1.1绘画哆啦A梦2.2绘画出来喜羊羊 二、我的六一故事总结 前言 我们都有过童年,并且从现在看来,童年是我们最希望可以回去的那段时光,那时候的我们傻傻的,并且很天真…

电子元器件解析02之电容(一)——定义与性能参数

下篇文章:电子元器件解析02之电容(二)——电容分类与应用场景:https://blog.csdn.net/weixin_42837669/article/details/131142767 摘要 电容是最基本的电子元器件之一,本文介绍了电容的定义,并总结了电容的各个性能参数&#xff…

leetcode143. 重排链表(java)

重排链表 leetcode143. 重排链表题目要描述 解题思路代码链表专题 leetcode143. 重排链表 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/reorder-list 题目要描述 给定一个单链表 L 的头节点 head ,单链表 …

根据字节、华为、阿里、腾讯等大厂整理的2023最新面试热点问题,还不行我也救不了你了~

大厂面试热点问题 1、测试人员需要何时参加需求分析? 如果条件循序 原则上来说 是越早介入需求分析越好 因为测试人员对需求理解越深刻 对测试工作的开展越有利 可以尽早的确定测试思路 减少与开发人员的交互 减少对需求理解上的偏差 2、软件测试与调试的关系 测…

MM32F3273G8P火龙果开发板MindSDK开发教程11 -获取msa311加速器的xyz轴数据

MM32F3273G8P火龙果开发板MindSDK开发教程11 -获取msa311加速器的xyz轴数据 1、msa311简介 使用i2c总线 可以读取xyz轴的加速度 可以监测单击双击事件 可以监测运动与静止状态 可以监测自由落体事件,可用来监测摔倒或跌落。 可以监测旋转事件,类似手机…

工作中自我或者团队管理的几个有用工具

个人或者团队管理过程中,采用一些有效的管理工具或者方法,可以提升工作效率和结果。它们包括SMART原则、PDCA循环、SWOT分析、5W2H分析、鱼骨图分析、七个凡是。这几个工具或者方法之间有互通性,比如,PDCA循环中,在P这…

数学建模预备知识(1)全网最全的数学建模竞赛汇总,别再被坑了!

🌅*🔹** φ(゜▽゜*)♪ **🔹*🌅 欢迎来到馒头侠的博客,该类目主要讲数学建模的知识,大家一起学习,Qq及各类联系方式在图片上! 喜欢的朋友可以关注下,下次更新不迷路&…

【MySQL】为什么MySQL选择B+Tree来做索引?

B树和B树的区别? B树 B树 B*树 B树和B树的区别 (1)存储量大:B树叶子及非叶子节点存索引数据,B树叶子非叶子节点存索引,叶子节点存数据; (2)查找速度: 查单个值&…

细说websocket - php篇

下面我画了一个图演示 client 和 server 之间建立 websocket 连接时握手部分,这个部分在 node 中可以十分轻松的完成,因为 node 提供的 net 模块已经对 socket 套接字做了封装处理,开发者使用的时候只需要考虑数据的交互而不用处理连接的建立…

运营-22.内容分发

内容分发 内容分发本质要解决的问题包含两点: 1. 高效的连接人与信息; 2. 过滤出有价值的信息,让合适的人看到合适的信息 。 常见的内容分发方式: 1. 编辑分发; 2. 订阅分发; 3. 社交分发; 4. 算…

Oracle中使用【Interval】对【日期】进行【相加减】,报错 ORA-01839:指定月份的日期无效(Interval的坑)

文章目录 1. 前言2. 先说结论3. 案例演示 1. 前言 最近在对某些表进行旧数据的删除,必然是通过【时间】删除之前较为久远的数据,比如1年前,6个月前,7天前的数据等等情况,这个时候的SQL,必然会出现条件&…

pandas---数据结构(Series、DataFrame 和 MultiIndex)创建方式、属性

1. 数据结构 Pandas中一共有三种数据结构,分别为:Series、DataFrame 和MultiIndex。 其中Series是一维数据结构,DataFrame是二维表格型数据结构,MultiIndex是三维数据结构。 1.1 Series Series是一个类似于一维数组的数据结构…

【LeetCode】每日一题 -- 1170. 比较字符串最小字母出现频次 -- Java Version

题目链接:https://leetcode.cn/problems/compare-strings-by-frequency-of-the-smallest-character/ 1. 题解(1170. 比较字符串最小字母出现频次) 昨天的每日一题 2699. 修改图中的边权 有点难,研究了一会儿,学习了一…

文件讲解—【C语言】

目录 1.为什么使用文件 2. 什么是文件 2.1 程序文件 2.2 数据文件 2.3 文件名 3. 文件的打开和关闭 3.1 文件指针 3.2 文件的打开和关闭 4. 文件的顺序读写 4.1 顺序读写函数介绍 4.2 对比一组函数 例子 例子 5.3 rewind 例子 6. 文本文件和二进制文件 测试代…

机器学习 day15(神经网络的工作原理,激活值a的公式)

1. 隐藏层的内部实现 如图通常来说,该模型一共有两层,不包括输入层(layer 0),第一层是隐藏层(layer 1),第二层是输出层(layer 2),我们可以用方括…

【力扣刷题 | 第三天】242.有效字母异位词 349 两个数组的交集

目录 1.242. 有效的字母异位词 2.349. 两个数组的交集 - 力扣(LeetCode)​​​​​​ 使用算法笔记: 总结: 1.242. 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意…