Docker nginx django mysql - ntuf/Tips GitHub Wiki

(Project)

  • docker
  • docker-compose.yml
  • nginx
    • conf
      • (Project)_nginx.conf
  • web
    • Dockerfile
    • requirements.txt

■requirements.txt Pipで管理している場合の設定ファイル い一括でインストールできる

Django==3.2.8 uwsgi==2.0.20 PyMySQL==1.0.2

■Dockerfile Dockerで作成するコンテナイメージを管理するためのファイル この中でrequirementsを読んでいる。

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

■docker-compose.yml Docker Composeの設定・構成を定義するファイル

※Docker Composeは、 複数のコンテナで構成されるアプリケーションについて、 Dockerイメージのビルドや各コンテナの起動・停止などをより簡単に行えるようにするツール

-- version: '3.4'

volumes: lx_questionaire.db.volume: name: lx_questionaire.db.volume

services: nginx: image: nginx:1.13 container_name: lx_questionaire.nginx ports: - "8000:8000" volumes: - ./nginx/conf:/etc/nginx/conf.d - ./nginx/uwsgi_params:/etc/nginx/uwsgi_params - ./static:/static depends_on: - web

db: image: mysql:5.7 container_name: lx_questionaire.db ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: lx_questionairepass TZ: 'Asia/Tokyo' volumes: - lx_questionaire.db.volume:/var/lib/mysql - ./sql:/docker-entrypoint-initdb.d

web: build: ./web container_name: lx_questionaire.web command: uwsgi --socket :8001 --module lx_questionaire.wsgi volumes: - ./src:/code - ./static:/static expose: - "8001" depends_on: - db

■コマンド docker run →イメージを起動するためのコマンド

docker-compose up -d →コンテナをバックグラウンドで起動し、そのまま実行し続ける  -dオプションをつけないとフォアグラウンドで動くらしい。

docker-compose stop →コンテナを停止する

docker ps →コンテナが稼働しているかを確認できる。

--

どうやってDockerのDBアクセスしたらいいんだろ? localhostでアクセスできない。 → IP分かっている必要はありません。 docker-compose.yml に記載したコンテナ名でアクセス出来ます。 /etc/hosts に記載されている、ということは、 そもそもそのホスト名でアクセス出来る ということ。 なので、下記の様に /etc/hosts をわざわざ見る必要はありません。

そもそもDockerでやることのメリットって何だ? →環境全体をイメージで扱えるので、  環境を作ったり・消したり、移したりが容易  ローカルでdockerでやるメリットってあるのか?   →特にはない  dockerイメージをそのままAWSに上げて動かすこととかもできるはず。

⚠️ **GitHub.com Fallback** ⚠️