Django インストール by Docker-toolbox
以前の記事でインストールしたDocker-toolboxを使ってDjangoのインストールをしていく。
Djagoのチュートリアルを読みつつ、進めよう。
自分の家でチュートリアルを実行できるように、youtubeでも公開しているらしい。
そのチュートリアルではpipを使ってインストールしている。
他にもDjangoの本があるらしい。
UTokyoの方たちが作ったサイトは、そこら辺の知識をまとめたもののようだ。
Dockerfile
docker-compose.yml
requirement.txt
の三つを作業ディレクトリにまず作る。
required.txtの作成
ディレクトリにまず作るもの。
pip install -r requirement.txt
で中のものをインストールできる。
なるほど。だからみんなgithubに置いているのか。
/requirements.txt Django>=2.1,<2.2 psycopg2>=2.7,<3.0
version: '3' services: db: image: postgres environment: - POSTGRES_PASSWORD=somepassword web: build: . command: python manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: - "8000:8000" depends_on: - db
/Dockerfile FROM python:3.6 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code COPY requirements.txt /code/ RUN pip install -r requirements.txt COPY . /code/
インストール
Utokyosprintで用意されているコマンドを実行していく。
どれがどの役割をしているのか読まないとならない。
docker-compose.ymlなどを解説しているので、読んでおくべき。
とりあえず後で読むことにして、コマンドを打ち込む。
docker-compose run web django-admin startproject config .
ここでconfigと名前を付けている。
error
docker-compose run web django-admin startproject config .
の実行に際して、以下のエラーが出た。
Building web Step 1/7 : FROM python3.6 ERROR: Service 'web' failed to build: pull access denied for python3.6, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
Dockerfileなどの解説もついてるqiitaなど色々調べたがわからない。
かなり時間を取られてしまったが、
FROM python3.6 ENV PYTHONUNBUFFERED 1 RUN mkdir code ...
ここでpython3.6としていたことが原因だった。
テキストで書くとこういうところが危ない。面倒くさがらずにエディタで書くようにしよう。
インストールが終わると、cofigディレクトリができていて、次の構造となっている。
code ├─ requirements.txt ├─ manage.py ├─ config │ ├─ __init__.py │ ├─ settings.py │ ├─ urls.py │ └─ wsgi.py ├─ docker-compose.yml └─ Dockerfile
データベースの設定とHOSTの設定
/config/setting.py
を書き換え。
...
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'HOST': 'db',
'PORT': 5432,
'PASSWORD': 'somepassword',
}
}
...
ALLOWED_HOST部分も書き換え。
... ALLOWED_HOSTS = [ "192.168.99.100", ] ...
サーバーの起動
docker-compose up
でサーバー起動。
けっこう時間がかかったが終わった。
PCがうなっていて怖い。
Djangoコマンドの書き換え
いまやることではないらしいが、一応メモ
django-admin startapp app
→
> docker-compose run --rm web django-admin startapp app
python3 manage.py migrate
→
> docker-compose run --rm web python3 manage.py migrate
このように-rm
オプションを付けないとメモリオーバーする。
gitによるバージョン管理
ローカルレポジトリの設定
git init
をディレクトリ内で行う。
.gitignore
を設定する。
初心者向けのgitignore
の説明
バイナリファイルなど、共有したくないものをあらかじめ指定するもの。
リポジトリの作成時に作成する
ここでは次の内容を書き込む。
# Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] # C extensions *.so # Distribution / packaging .Python env/ build/ develop-eggs/ dist/ downloads/ eggs/ lib/ lib64/ parts/ sdist/ var/ *.egg-info/ .installed.cfg *.egg # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .coverage .cache nosetests.xml coverage.xml # Translations *.mo *.pot # Django stuff: *.log # Sphinx documentation docs/_build/ # PyBuilder target/ # Vim .ropeproject
gitignoreの書き方はここが詳しい。
あとは、変更内容を
add
してcommit
する。
Webでの設定
Githubのページに行き、右上+
マークから「New repository」を選択する。
レポジトリ名を決め、作成する。
次に、ローカルとの紐づけを次のコマンドで行う。
git remote add origin https://github.com/hshinagawa/********.git
最後に、現在の状況をpushする。
git push -u origin master
あとでわからなくなりそうなので、gitの運用方法をまとめておいた。
yayaya-science.hatenablog.com
djangoの設定は次回以降。