使用Docker构建Django2(Python3)+ Mysql的开发环境

(macOS10.12.6,Django2.0.2,python3.6.4,MySQL5.7) 的汉语翻译如下:
(macOS10.12.6,Django2.0.2,python3.6.4,MySQL5.7)

由于公式只提供了PostgreSQL版本的代码,所以只能使用MySQL。

前提是在中文中进行原生措辞,只需要一个选项 :

在Mac上安装Docker和Django。

    • https://www.docker.com/docker-mac

 

    https://www.djangoproject.com/

Django 就足够了。

项目创建

将公式调整顺序。首先在本地创建项目。
(项目名称暂定为webapp)。

$ django-admin startproject core
$ mv core webapp
$ cd webapp

修改Django配置。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django',
        'USER': 'django',
        'PASSWORD': 'django',
        'HOST': 'db',
        'PORT': 3306,
    }
}

Python库

Django>=2.0.1
mysqlclient
    Databases | Django documentation | Django #MySQL DB API Drivers

Docker (中文简述:容器)

创建文件

    • mysql の文字コードをutf8mb4にしておく

 

    • db より先に web が起動した場合エラーになるので wait-for-it 使うのがよさそう。 wait-for-it.sh

 

    • をダウンロードしてトップの階層に置く

http://docs.docker.jp/compose/startup-order.html
https://github.com/vishnubob/wait-for-it

version: '3'
services:
 db:
 image: mysql:5.7
 command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
 volumes:
 - .:/var/www/webapp
 restart: always
 environment:
 MYSQL_ROOT_PASSWORD: django
 MYSQL_DATABASE: django
 MYSQL_USER: django
 MYSQL_PASSWORD: django
 web:
 build: .
 command: sh -c "./wait-for-it.sh db:3306; python3 manage.py runserver 0.0.0.0:8000"
 volumes:
 - .:/var/www/webapp
 ports:
 - "8080:8000"
 depends_on:
 - db
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir -p /var/www/webapp
WORKDIR /var/www/webapp
ADD requirements.txt /var/www/webapp/
RUN pip install -r requirements.txt
ADD . /var/www/webapp/

创建并启动容器

$ docker-compose up -d

确认行动

    http://localhost:8080/
スクリーンショット 2018-02-09 16.41.51.png

管理界面

移民并创建管理员

$ docker-compose run web python manage.py migrate
$ docker-compose run web python manage.py createsuperuser

确认动作

    http://localhost:8080/admin/
スクリーンショット 2018-02-09 16.42.02.png

文件结构

$ tree -I __pycache__
.
├── Dockerfile
├── core
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── docker-compose.yml
├── manage.py
├── requirements.txt
└── wait-for-it.sh

1 directory, 9 files
    • Quickstart: Compose and Django | Docker Documentation

 

    Docker公式イメージのMySQLで文字コードを指定する – Qiita
广告
将在 10 秒后关闭
bannerAds