DjangoとDocker練習[O17o2o0] gitでソースをクローンしよう!
Git を使ってソースをデプロイする方法を説明する
情報
この記事は Lesson 1. から順に全部やってこないと ソースが足りず実行できないので注意されたい
What is | This is |
---|---|
Lesson 1. | 📖 DjangoとDockerでゲーム対局サーバーを作ろう! |
用語解説
-
レポジトリ
- ソースを置いているディレクトリー
手順
本題に入る前に
Git Hub にレポジトリを作っておいてほしい
git をインストールする
git は Dockerコンテナの外側のOSにインストールしたい
👇 Ubuntu を使っているときは、以下のコマンドを打鍵してほしい
sudo apt-get install git-all
ソースをクローンしたいディレクトリーに移動する
👇 例えば 以下の場所にソースを置きたいとする
ディレクトリーは作成しておいてほしい
📂 /
└── 📂 home
└── 📂 ubuntu
👉 └── 📂 repos この中にソースを置きたい
cd /home/ubuntu/repos
ソースをクローンする
URLは適宜変えてほしい
👇 1回目は、イニシャライズしてクローン
git init
git clone https://github.com/muzudho/django-practice2.git
# -----------------------------------------------
# 1
# 1. Git Hub の レポジトリのURL
#
# ここまでは1回行うだけでよい
👇 2回目以降は、プルしてフェッチ(この操作でサーバーが壊れる。あとで説明する)
# (慎重)ローカルの変更をすべて破棄したいなら
git restore .
# 取得
git pull https://github.com/muzudho/django-practice2.git
git fetch https://github.com/muzudho/django-practice2.git
以下の2つを説明する
- パーミッションが変わってるかもしれない
- Docker が止まっているかもしれない
これでディレクトリー構成はクローンされる。
👇 例えば以下のように
📂 /
└── 📂 home
└── 📂 ubuntu
└── 📂 repos
└── 📂 django-practice2 # レポジトリ
├── 📂 docs
├── 📂 src1
├── 📂 src2_local
├── 📄 .gitignore
├── 📄 LICENSE
└── 📄 README.md
fetch したらデータベースが壊れてるかも
👇 マイグレーションすると直るかもしれないが、何をやってるのか さっぱり分からない
docker-compose run --rm web python3 manage.py migrate sites
docker-compose run --rm web python3 manage.py migrate
パーミッション
Windows に無くて Linux に有るのが ファイルのパーミッション。
👇 確認してほしい
Input:
ll
Output:
total 12
drwxrwxr-x 3 ubuntu ubuntu 4096 Aug 14 20:05 ./
drwxr-xr-x 7 ubuntu ubuntu 4096 Aug 14 20:05 ../
drwxrwxr-x 6 ubuntu ubuntu 4096 Aug 14 20:05 django-practice2/
さくらのVPS を借りると ubuntu というユーザーだったので、そうする
# 指定のフォルダー以下のすべてのファイル、ディレクトリーのパーミッションの変更(上書き)の例
sudo chown -R ubuntu:ubuntu django-practice2
# サーバーのパスワードを入力
👇 docker-compose は ルート権限で実行しないといけないかもしれない
sudo docker-compose up
DEBUG フラグ
- settings.py の DEBUGフラグは下げてほしい
.env ファイルをアプロードしてほしい
このファイルの内容は秘密にすること
📂 /
└── 📂 home
└── 📂 ubuntu
└── 📂 repos
└── 📂 django-practice2 # レポジトリ
├── 📂 docs
├── 📂 src1
├── 📂 src2_local
👉 ├── 📄 .env
├── 📄 .gitignore
├── 📄 LICENSE
└── 📄 README.md