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从入门到实践

    今天的学习是为了以后的工作更加的轻松!
  • 相关阅读:
    【SCOI 2011】 糖果
    【POJ 3159】 Candies
    【POJ 1716】 Integer Intervals
    【POJ 2983】 Is the information reliable?
    【POJ 1364】 King
    【POJ 1201】 Intervals
    【POJ 1804】 Brainman
    6月10日省中提高组题解
    【POJ 3352】 Road Construction
    【POJ 1144】 Network
  • 原文地址:https://www.cnblogs.com/tz90/p/12245684.html
Copyright © 2011-2022 走看看