zoukankan      html  css  js  c++  java
  • 十二、Compose实战

    于2021年10月10日学习

    一、实战Django

    Django 是一个 Web 应用框架,好了你知道的已经够多了,下面开始讲案例。

    要用到三个文件

    • Dockerfile
    • requirements.txt
    • docker-compose.yml

    1.1 配置

    1、创建Django项目文件夹

    mkdir Django
    cd Django/
    

    2、编辑Dockerfile文件内容如下

    FROM python:3
    ENV PYTHONUNBUFFERED 1
    RUN mkdir /code
    WORKDIR /code
    COPY requirements.txt /code/
    RUN pip install -r requirements.txt
    COPY . /code/
    

    3、编辑requirements.txt文件内容如下

    Django>=2.0,<3.0
    psycopg2>=2.7,<3.0
    

    4、编辑docker-compose.yml文件内容如下

    version: "3"
    services:
    
      db:
        image: postgres
        environment:
          POSTGRES_PASSWORD: 'postgres'
    
      web:
        build: .
        command: python manage.py runserver 0.0.0.0:8000
        volumes:
          - .:/code
        ports:
          - "8000:8000"
    

    5、启动Django应用

    docker-compose run web django-admin startproject django_example .
    

    之后在当前目录会生成一个Django应用,记得改下权限

    我是root,权限最大,如果是其他用户,需要修改权限

    6、修改django_example/settings.py文件中的DATABASES节点内容

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': 'postgres',
            'USER': 'postgres',
            'HOST': 'db',
            'PORT': 5432,
            'PASSWORD': 'postgres',
        }
    }
    

    7、运行

     docker-compose up
    

    8、运行效果

    image-20211010181823551

    访问效果,可以看到状态码是200,访问成功

    image-20211010181700475

    什么?讲的不详细,得了吧,你要这么详细有什么用,反正也看不懂!

    1.2 资料

    实战Django

    遇到的报错,或者重启docker

    二、实战Rails

    Rails是一个web开发框架,知道了吧,知道了就直接看案例

    还是需要三个文件,对!就是这老三样

    • Dockerfile
    • requirements.txt
    • docker-compose.yml

    2.1 配置

    1、创建Rails项目文件夹

    mkdir Rails
    cd Rails/
    

    2、编辑Dockerfile文件内容如下

    FROM ruby
    RUN apt-get update -qqy && apt-get install -y build-essential libpq-dev
    RUN mkdir /myapp
    WORKDIR /myapp
    ADD Gemfile /myapp/Gemfile
    RUN bundle install
    ADD . /myapp
    

    -qqy选项说明

    3、编辑引导加载 Rails 的文件 Gemfile

    source 'https://rubygems.org'
    gem 'rails' 
    

    这里不要指定rails版本,让它装最新版

    什么是Gemfile

    4、编辑docker-compose.yml文件内容如下

    version: "3"
    services:
    
      db:
        image: postgres
        ports:
          - "5432"
    
      web:
        build: .
        command: bundle exec rackup -p 3000
        volumes:
          - .:/myapp
        ports:
          - "3000:3000"
    

    5、启动

    docker-compose run web rails new . --force --database=postgresql --skip-bundle
    

    可以看到已经生成了新的应用文件了

    image-20211010222207751

    6、编辑新生成的config目录下的database.yml文件,替换为如下内容

    #备份
    cp config/database.yml config/database.yml.bak
    
    #将配置文件替换为如下内容
    development: &default
      adapter: postgresql
      encoding: unicode
      database: postgres
      pool: 5
      username: postgres
      password:
      host: db
    
    test:
      <<: *default
      database: myapp_test
    

    8、重新构建再启动

    docker-compose build
    docker-compose up
    

    9、再开一个终端,运行如下命令创建数据库

    docker-compose run web rake db:create
    

    10、效果如下

    image-20211010223444828

    2.2 资料

    实战Rails

    三、实战WordPress

    这个案例最简单,不过我相信你已经放弃了,看不到这里了,哈哈开个玩笑

    wordpress是php写的博客网站,需要搭配mysql数据库使用

    3.1 配置

    1、创建wordpress项目文件夹

    mkdir wordpress
    cd wordpress/
    

    2、编辑docker-compose.yml文件内容如下

    version: "3"
    services:
    
       db:
         image: mysql:8.0
         command:
          - --default_authentication_plugin=mysql_native_password
          - --character-set-server=utf8mb4
          - --collation-server=utf8mb4_unicode_ci     
         volumes:
           - db_data:/var/lib/mysql
         restart: always
         environment:
           MYSQL_ROOT_PASSWORD: somewordpress
           MYSQL_DATABASE: wordpress
           MYSQL_USER: wordpress
           MYSQL_PASSWORD: wordpress
    
       wordpress:
         depends_on:
           - db
         image: wordpress:latest
         ports:
           - "8000:80"
         restart: always
         environment:
           WORDPRESS_DB_HOST: db:3306
           WORDPRESS_DB_USER: wordpress
           WORDPRESS_DB_PASSWORD: wordpress
    volumes:
      db_data:
    

    3、运行如下命令拉取镜像并启动

    docker-compose up -d
    

    4、运行效果如下

    image-20211010230323137

    访问效果如下

    image-20211010230247037

    3.2 资料

    实战WordPress

    四、实战LNMP

    这里的LNMP的案例是一个打包好的命令,是开源的,是一个94年的大佬做的,真的很厉害,这是他的github这是他的博客,链接留在这里,希望我以后能研究明白吧。

    五、参考资料

    Docker从入门到实践

    今天的学习是为了以后的工作更加的轻松!
  • 相关阅读:
    cocos2d-x把json数据解析到数组或字典中(libjson库)
    (bug更正)利用KVC和associative特性在NSObject中存储键值
    第二次博客作业
    我的感想
    期末总结
    陈老师作业
    第三次作业---四则运算的进一步完善
    好难
    对git的认识
    计应143 卞玉新
  • 原文地址:https://www.cnblogs.com/tz90/p/12245684.html
Copyright © 2011-2022 走看看