美文网首页
Docker-compose_管理部署

Docker-compose_管理部署

作者: 魔曦帝天 | 来源:发表于2019-11-12 21:24 被阅读0次

思路总结
利用docker-compose,管理部署项目,将项目代码在映射到容器内。

image.png

排错指令集
docker logs [容器ID] docekr-composer build 构建镜像(修改dockerfile)
编写dockerfile注意事项
1.排序多行参数
尽可能通过字母数字排序多行参数来简化以后的更改。这有助于避免软件包重复,并使列表更易于更新。这也使PR易于阅读和查看。在反斜杠(\)之前添加空格也有帮助。

将多行长或复杂的RUN语句分割成多行,并用反斜杠分隔,以使您Dockerfile更具可读性,可读性和可维护性。

RUN apt-get update && apt-get install -y \
  bzr \
  cvs \
  git \
  mercurial \
  subversion

VOLUME

该VOLUME指令应用于公开由Docker容器创建的任何数据库存储区,
配置存储或文件/文件夹。
强烈建议VOLUME您将图像用于任何可变和/或用户可维修的部分。

ONBUILD

ONBUILD [INSTRUCTION]
该ONBUILD指令将映像用作另一个构建的基础时,将在以后的时间向该映像添加触发指令。触发器将在下游构建的上下文中执行,就像它已FROM在下游指令之后立即插入一样 Dockerfile。

[...]
ONBUILD ADD . /app/src
ONBUILD RUN /usr/local/bin/python-build --dir /app/src
[...]

docker-compose.yaml文件

注意mysql,与adminie(项目容器)以及nginx修改配置文件回重新启动,所以必须设置restart: always

version: '3'
services: 
    mysql: 
      image: mysql:5.7
      #  bulid: mysql_docker_mysql:latest

      # 设置字符编码
      command:  --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
      restart: always
      volumes:  # 设置初始化mysql密码
          # -  "mysqldb:/var/lib/mysql:rw"
          - "./init.sql:/docker-entrypoint-initdb.d/init.sql"  
      environment:
               MYSQL_ROOT_PASSWORD: QFedu123!
      container_name: "django_test"
      networks: 
           - dev 
    nginx:
      build: ./nginx
      restart: always
      volumes:  # 挂载静态文件和nginx配置文件
          - /opt/Docker_comeper_data/adminIE/nginx/nginx_conf/:/etc/nginx/conf.d/
          - /opt/Docker_comeper_data/adminIE/nginx/all_static/allstatic/:/allstatic 
      expose: 
          - "80"
      ports: 
         - "8001:80"
      networks: 
           - dev
      container_name: "nginx_server"
    redis:
      image: redis:alpine
      expose: 
          - "6379"
      ports: 
         - "6379:6379"      
      container_name: "redis_server"
      networks: 
           - dev
    rabbitemq: 
      build: ./rabbitemq
      expose: 
          - "5672"
          # - "4369"
          # - "5671"        
          # - "25672"        
      ports: 
         - "5672:5672"       
         
      container_name: "rabbitmq"
      networks: 
           - dev

    adminie:
      # image: django:v2
      restart: always
      build: ./adminie
      container_name: "adminIE_django"
      expose: 
          - "22"
          - "80"
      ports: 
         - "8222:22" 
         - "8000:80" 
      networks: 
           - dev
         
networks : # 创建共享docker网络  
    dev: 
      driver: bridge

设置项目环境,uwsgi启动Django项目

image.png
init.sql image.png

相关文章

网友评论

      本文标题:Docker-compose_管理部署

      本文链接:https://www.haomeiwen.com/subject/sycxictx.html