docker-compose構(gòu)建cmdb聯(lián)合容器項目

完整項目已上傳至gitlab:
鏈接為:我的gitlab項目我的github項目

image.png

docker-compose.yml文件內(nèi)容:

version: '3.3'

services:

  cmdb:
    #image: centos7-python3.7
    build: /home/docker_compose/auto-cmdb/docker-cmdb/cmdb
    ports:
      - "127.0.0.1:9099:80"
      - "127.0.0.1:9333:22"
    container_name: "cmdb_server"
    #volumes:
    #  - ./docker-cmdb/cmdb/cmdb:/opt/cmdb  
    networks:
      - jumpserver-test
    tty: true
    depends_on:
      - mysql
      - redis
      - rabbitmq
      - nginx
    command:
      - /bin/bash
      - -c
      - |
        cd /opt/cmdb
        python3 manage.py makemigrations
        python3 manage.py migrate
        uwsgi --ini conf/qf_uwsgi.ini
  mysql:
    build:
      context: ./docker-cmdb/mysql 
      dockerfile: Dockerfile
    #image: mysql/mysql-server:5.7
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    volumes:
      - ./data/mysql/data:/var/lib/mysql
      - ./data/mysql/init:/docker-entrypoint-initdb.d/
      #- type: volume
      #  source: mysqldb
      #  target: /var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: Oyzx1314@
    expose:
      - "3306"
    container_name: "mysql_server"
    networks:
      - jumpserver-test
  redis:
    #image: redis:alpine
    build: /home/docker_compose/auto-cmdb/docker-cmdb/redis
    expose:
      - "6379"
    container_name: "redis_server"
    networks:
      - jumpserver-test
  rabbitmq:
    #image: rabbitmq:latest
    build: /home/docker_compose/auto-cmdb/docker-cmdb/rabbitmq
    expose:
      - "5672"
    container_name: "rabbitmq_server"
    networks:
      - jumpserver-test
  nginx:
    #image: nginx:alpine3.8
    build: /home/docker_compose/auto-cmdb/docker-cmdb/nginx
    ports:
      - "4333:80"
    container_name: "nginx_server"
    volumes:
      - ./docker-cmdb/nginx/conf.d:/etc/nginx/conf.d
      - ./docker-cmdb/nginx/allstatic:/allstatic
    networks:
      - jumpserver-test

networks:
  jumpserver-test:
    driver: bridge

該文件構(gòu)建了五個容器 分別為:cmdb_server敦间、mysql_server臊恋、redis_server歧胁、rabbitmq_server伴找、nginx_server容器

  • cmdb_server: 作為web主項目嗅绰,即基于Django的cmdb資產(chǎn)管理項目
  • mysql_server: 是為cmdb_server項目提供數(shù)據(jù)存儲等功能
  • redis_server: 是為cmdb_server項目提供數(shù)據(jù)緩存等功能
  • rabbitmq_server: 是作為cmdb_server項目中進(jìn)行celery異步操作的進(jìn)度調(diào)配者broker
  • nginx_server: 是為cmdb_server項目提供反向代理抡秆、負(fù)載均衡等功能

文件目錄:


文件目錄.png

創(chuàng)建五個容器的Dockerfile及相應(yīng)文件:

在docker-cmdb文件夾下創(chuàng)建了五個文件夾(cmdb镐侯、mysql侦讨、redis、rabbitmq苟翻、nginx)

docker-cmdb目錄結(jié)構(gòu)

一. cmdb容器文件:

cmdb容器文件目錄下有三個必要文件:

cmdb

1. cmdb: 該文件夾中存放django項目
2. requirments.txt:該文件中存放項目環(huán)境所需安裝的包或模塊

python 項目都有自己的依賴包韵卤,通常會放在項目根目錄下的一個文件,這個文件名叫:requirements.txt

此文件可以通過如下命令得到:

(django) [root@localhost ~]# pip3 freeze > requirement.txt

內(nèi)容一般為:
(django) [root@localhost ~]# head -3 requirments.txt
Django==1.11
PyMySQL==0.8.1

可以使用如下命令來安裝這些項目的依賴模塊崇猫。
pip3 install -r requirement.txt

3. Dockerfile: 用來構(gòu)建cmdb項目的docker
內(nèi)容如下:

FROM centos7-python3.7     #以此為基礎(chǔ)鏡像
ONBUILD COPY . /opt/    

#安裝項目的依賴模塊
ONBUILD RUN pip3 install -r /opt/requirments.txt && pip3 install uwsgi  

二. mysql容器文件

mysql容器文件下有兩個必須文件:


mysql

文件

1. docker-entrypoint.sh: 構(gòu)建Dockerfile時所需的腳本文件
docker-entrypoint.sh部分舉例.png

2. Dockerfile:Dockerfile文件內(nèi)容如下

Dockerfile參考.png

三. nginx容器文件:
nginx

image.png

1. allstatic:所有的cmdb項目所需的靜態(tài)文件

靜態(tài)文件

2. conf.d:nginx的配置文件,里面存放一個任意的xxx.conf的文件(只要是以.conf結(jié)尾即可)

upstream django {
    # server unix:///path/to/your/mysite/mysite.sock; # for a file socket
    # cmdb中Django 的地址和端口
    server cmdb_server:8000; # cmdb容器名及監(jiān)聽端口
}
# configuration of the server

server {
    # nginx 主機的監(jiān)聽端口
    listen      80;
    # nginx 主機的域名(nginx容器名)
    server_name nginx_server;
    charset     utf-8;

    # max upload size
    client_max_body_size 75M;   # adjust to taste

    # Django 的靜態(tài)文件
    location /static {
        alias /allstatic; # 指向django的static目錄
    }

    # 最后將非靜態(tài)資源的請求都轉(zhuǎn)發(fā)個 Django
    location / {
        uwsgi_pass  django; # django 和 upstream django 對應(yīng)
        include     uwsgi_params; # the uwsgi_params file you installed
    }
}

3.Dockerfile:文件內(nèi)容請參考gitlab中

image.png

四. rabbitmq容器文件:
image.png
rabbitmq

文件結(jié)構(gòu)同mysql結(jié)構(gòu)沈条,其中有個run.sh是為了創(chuàng)建rabbitmq中用戶的,目前由于只是測試docker-compose使用邓尤,并未使用該腳本拍鲤,若有興趣,可做進(jìn)一步研究汞扎。

五. redis容器文件:
redis

redis_gitlab

執(zhí)行docker-compose

執(zhí)行目錄

在有docker-compose的文件目錄下執(zhí)行

docker-compose up

image.png

在經(jīng)過一段時間的安裝后....直至五個容器都開啟后 季稳,可直接訪問docker-composenginx配置的端口通過反向代理訪問cmdb項目
image.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市澈魄,隨后出現(xiàn)的幾起案子景鼠,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铛漓,死亡現(xiàn)場離奇詭異溯香,居然都是意外死亡,警方通過查閱死者的電腦和手機浓恶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進(jìn)店門玫坛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人包晰,你說我怎么就攤上這事湿镀。” “怎么了伐憾?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵勉痴,是天一觀的道長。 經(jīng)常有香客問我树肃,道長蒸矛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任胸嘴,我火速辦了婚禮雏掠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘筛谚。我一直安慰自己磁玉,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布驾讲。 她就那樣靜靜地躺著,像睡著了一般席赂。 火紅的嫁衣襯著肌膚如雪吮铭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天颅停,我揣著相機與錄音谓晌,去河邊找鬼。 笑死癞揉,一個胖子當(dāng)著我的面吹牛纸肉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播喊熟,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼柏肪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了芥牌?” 一聲冷哼從身側(cè)響起烦味,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎壁拉,沒想到半個月后谬俄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柏靶,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年溃论,在試婚紗的時候發(fā)現(xiàn)自己被綠了屎蜓。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡钥勋,死狀恐怖梆靖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情笔诵,我是刑警寧澤返吻,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站乎婿,受9級特大地震影響测僵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谢翎,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一捍靠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧森逮,春花似錦榨婆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至闷供,卻和暖如春烟央,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背歪脏。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工疑俭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人婿失。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓钞艇,卻偏偏與公主長得像,于是被迫代替她去往敵國和親豪硅。 傳聞我的和親對象是個殘疾皇子哩照,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容