内容へ移動
fl8 Wiki
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
現在位置:
Dokuwiki.fl8.jp
»
06_virtualization
»
05_container
»
27 Docker Djnago
トレース:
06_virtualization:05_container:27_docker_django
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 27 Docker Djnago ====== Docker でJango環境を作ってみる。 pipでのインストールは、[[15_python:01_django:01_install]] です。 ===== 1 ファイル用意 ===== <code|Dockerfile> FROM python:3.11 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code ADD requirements.txt /code/ RUN pip3 install -r requirements.txt ADD . /code/ EXPOSE 8000 </code> <code|requirements.txt> Django>=4.2 mysqlclient==1.4.6 djangorestframework==3.14.0 django-cors-headers==4.3.1 </code> <code|docker-compose.yml> version: '3' services: django: container_name: "django" build: . command: python3 manage.py runserver 0.0.0.0:8000 working_dir: /code ports: - 8000:8000 volumes: - .:/code depends_on: - db environment: - CHOKIDAR_USEPOLLING=true db: container_name: "db" image: mysql:8.0 restart: always environment: MYSQL_DATABASE: "db" MYSQL_ROOT_PASSWORD: 'password' volumes: - ./mysql:/var/lib/mysql ports: - 3306:3306 </code> <color #ed1c24>※CHOKIDAR_USEPOLLING=Trueを入れておくと、編集するとホットリロードしてくれる。</color> ==== Let's Encryptリバースプロキシを利用する場合のdocker-compose.yml ==== [[06_virtualization:05_container:25_let_s_encrypt_proxy]]で、SSL化して利用する場合 <code|docker-compose.yml> version: '3' services: django: container_name: "django" build: . command: python3 manage.py runserver 0.0.0.0:8000 working_dir: /code #ports: # - 8000:8000 volumes: - .:/code depends_on: - db environment: - CHOKIDAR_USEPOLLING=true - VIRTUAL_HOST=django.fl8.jp - LETSENCRYPT_HOST=django.fl8.jp networks: - app_proxy-tier - default db: container_name: "db" image: mysql:8.0 restart: always environment: MYSQL_DATABASE: "db" MYSQL_ROOT_PASSWORD: 'password' volumes: - ./mysql:/var/lib/mysql ports: - 3306:3306 networks: app_proxy-tier: external: true </code> ===== 2 build ===== docker-compose build ===== 3 Jangoプロジェクト作成 ===== <color #ed1c24>※[プロジェクト名]の後ろのドットが重要</color> docker-compose run django django-admin startproject [プロジェクト名] . 例: docker-compose run django django-admin startproject testproject . ==== プロジェクト作成後 ==== [プロジェクト名]/settings.pyに下記を追加 <code> DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'db', 'USER': 'root', 'PASSWORD': 'password', 'HOST': 'db', 'POST': 3306, 'OPTIONS': { 'charset': 'utf8mb4' } } } </code> ===== 4 起動 ===== docker-compose up -d ==== ALLOWED_HOSTS追加 ==== この画面が出るので、ALLOWED_HOSTSにホスト名を追加 {{:06_virtualization:05_container:pasted:20231214-125010.png}} <code|testproject/setting.py> ALLOWED_HOSTS = ['django.fl8.jp'] or ALLOWED_HOSTS = ['{IP}'] </code> ===== 5 確認 ===== ブラウザで http://[IP]:8000 をアクセス {{:06_virtualization:05_container:pasted:20230602-222642.png}} ===== 6 自動起動 ===== 再起動後の自動起動は、/etc/rc.localを使うのが良いかも [[06_virtualization:05_container:26_docker_iptables|Docker iptablesの話]] <code|/etc/rc.local> #!/bin/sh sleep 5 iptables -I DOCKER-USER -p tcp --dport 3306 -d 0.0.0.0/0 -d 172.23.0.2 -j DROP iptables -I DOCKER-USER -p tcp --dport 3306 -s 172.23.0.3 -d 172.23.0.2 -j ACCEPT iptables -I DOCKER-USER -p tcp --dport 3306 -s 192.168.10.10 -d 172.23.0.2 -j ACCEPT docker start django </code> {{tag>docker django python}}
06_virtualization/05_container/27_docker_django.txt
· 最終更新: 2023/12/14 12:57 by
matsui
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ