さくらのVPSでDjangoアプリケーション作成したいんだけど?
今回はさくらのVPSでDockerを使ってDjangoアプリケーションを作成していきたいと思います。
この記事で分かること
- さくらのVPSでDockerを使う方法
- さくらのVPSでDockerを使ってDjangoアプリケーションを作成する方法
この記事ではDockerを使ってやってみるけど、Dockerを使わないでDjangoアプリケーションを公開するっていうことは以下の記事でやったのでDocker使いたくない場合は参考にしてみてください。
-
さくらのVPSでDjangoアプリを公開する【Nginx・uWSGI・MySQL】
2023/1/19
そんな悩みを解消するために、この記事ではさくらのVPSでサーバーを立ててDjangoアプリケーションを公開してみます。 さくらのVPSでサーバー構築をする さくらのVPSに登録したらさっそくサーバーを ...
さくらのVPSでDockerを使ってDjangoアプリケーションを作成していきましょう。
さくらのVPSでDockerを使ってDjangoアプリを作成する方法
さくらのVPSでDockerを使う際は以下の手順を踏めば使うことができます。
- VPSサーバーを構築する
- Dockerをインストールする
- Djangoアプリケーションを作成する
Dockerはコマンドを使ってインストールしていって、Django自体はrequirements.txtに書いてDockerfileを使ってインストールしていきます。
OSはCentOSでやります
サーバーのOSはCentOSでやります。Ubuntuも選択できるので、Ubuntuでやりたい人はUbuntuでやるといいでしょう。
さくらのVPSでサーバー構築をする
さくらのVPSに登録したらさっそくサーバーを立てましょう。利用クーポンを利用する場合は選択するといいです。
ゾーンは別にどこでもいいかなーっていう感じだけど東京第2にしておきます。
プランは今回は毎月払いの1GBでいきます。メモリやCPUの高いものが欲しいならそれ相応のプランにしましょう。
ストレージは変更手数料0円の50GBにしておきます。
次へボタンを押すとサーバー設定の画面です。サーバー名やサーバー説明は入力しておくと管理画面から見るときに分かりやすいです。
OSは今回CentOSにしておいてバージョンは新しそうなやつを選択。
スタートアップスクリプトと言ってインストール時に実行してくれるスクリプトがあるけど、今回は利用しないとしておきます。
SSHキーはとりあえず登録しないにして進みます。
次へボタンを押すと支払方法を選択することができる。
毎月払いにしてクレジットカードを選択しておきます。
クレジットカード払いにしておくと2週間の無料お試しが利用できるから、もちろん利用するを選んでおきます。
お支払いボタンを押すと完了です。
さくらのVPSで作成したサーバーを確認する
サーバー作成をして少しするとサーバー一覧に作成したサーバーが表示されます。
初期状態は停止しているので、起動してみましょう。
コンソールから確認してみます。
- ユーザー名・・・centos
- パスワード・・・サーバー作成時に設定したパスワード
ちゃんとログインできましたね。
サーバーにDockerをインストールする
サーバーにDockerをインストールしていきます。作業はコンソールを使ってもいいんですが、やりづらいのでSSH接続してやるといいですよ。
以下の記事でSSH接続する方法を紹介しています。
-
さくらのVPSでSSH接続する方法を紹介します。
2022/8/8
そんな疑問を解消するために、この記事ではさくらのVPSで立てたサーバーにSSH接続する方法を書いていきます。 さくらのVPSでサーバーを立ててSSH接続したい方は参考にしてみてください。 さくらのVP ...
DockerのインストールはDocker CEの入手(CentOS向け)を参考にしながらDockerをインストールしていきます。
docker-ceリポをインストール
yumで色々インストールしていきます。
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
docker-ceのインストール
$ sudo yum install docker-ce
# いくつか聞かれるけどyesと答えてインストール
利用可能なバージョンの一覧を確認
$ yum list docker-ce.x86_64 --showduplicates | sort -r
インストール
$ sudo yum install docker-ce.x86_64
起動
$ sudo systemctl start docker
Docker Composeをインストールする
docker-composeも使いたいのでインストールしましょう。。docker-composeのリリースページから最新のバージョンを確認してそれをインストール。
普通にバージョン指定してcurlするとうまく後でコマンドを実行できなかったので、Githubのissueの中から成功したコマンドを実行。
$ sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep '\"tag_name\":' | sed -E 's/.*\"([^\"]+)\".*/\1/')/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
権限を設定します。
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version
=> Docker Compose version v2.9.0
docker-composeのバージョンも確認できましたね。
DdjangoアプリケーションのDocker-composeを作成する
Djangoアプリケーションを作っていくんだけど、これはComposeとDjangoを参考にやります。
ポイント
dockerのコマンドはroot権限でないと実行できません。rootユーザーのパスワードを設定してログインする方法は、SSH接続の記事のrootログインで書いています。
適当にディレクトリを作って環境を整っていきます。
$ mkdir my-app
$ cd my-app
Dockerfile
$ vi Dockerfile
#以下を記述
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
requirements.txt
vi requirements.txt
Django>=1.8,<2.0
psycopg2
docker-compose.yml
version: '3'
services:
db:
image: postgres
environment:
- "POSTGRES_USER=postgres"
- "POSTGRES_PASSWORD=password"
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
プロジェクトの作成
Dockerfile、requirements.txt、docker-compose.ymlの作成が終わったらプロジェクトを作成します。
docker-compose run web django-admin.py startproject composeexample .
composeexampleっていうのがカレンとディレクトリに作られるはずです。
settings.pyを編集
settings.pyを編集してサーバーのIPをALLOWED_HOSTSに入力。
ALLOWED_HOSTS = ['160.16.232.210']
データベース情報も書き換えます。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': 'password',
'HOST': 'db',
'PORT': 5432,
}
}
さくらのVPSで8000番ポートを許可
さくらのVPSではポートが制限されてるので、今回使う8000番ポートを許可しておきます。
これで後はdocker-compose upしてブラウザにアクセスしてやればいいだけです。
docker-compose upしてブラウザから確認する
docker-compose upしてブラウザにアクセスすると、ちゃんと表示されましたね。
まとめ - さくらのVPSでDockerを使ってDjangoアプリを作成する
DjangoのアプリケーションをDockerを使ってさくらのVPSで作るっていうことをやってみたけど、やっぱりDockerはいいですね。
- さくらのVPSでサーバーを立てる
- Dockerをインストールする
- DockerでDjangoアプリケーションを作る
今回は新しくサーバー内でアプリケーションを作成したけど、ローカルで作成したDockerアプリケーションをアップロードして動かすことも簡単にできそうです。
アップロードする際にはFTPソフトを使ってあげればいいですよ。