対象者
VPS + Docker + Djangoの環境構築で詰まった人
環境
Ubuntu 18.04(ConohaVPS)
前提
docker & docker-compose が使用可能
したいこと
docker で ポンっできましたくらいの勢いで、
Djangoのロケットが飛んでる画像がブラウザで見れるとこ作りたい.
詰まったところ
Django のALLOWED_HOST の設定がミスってた。
解決策
=> 立ち上げと同時に書き変えるようにbashfileに設定
構成
以下のような構成になってます。
Django/
├ Dockerfile
├ docker-compose.yml
├ startup.sh
└ requirements.txt
各fileの中身
Dockerfile
FROM python:3.6
ENV PYTHONUNBUFFERED 1
RUN apt-get update
RUN mkdir /test
ADD requirements.txt /test/
WORKDIR /test
RUN pip install -r requirements.txt
RUN apt-get install -y vim
RUN django-admin startproject mysite
RUN cd mysite
COPY startup.sh /startup.sh
RUN chmod 744 /startup.sh
CMD ["/startup.sh"]
docker-compose.yml
version: '2'
services:
web:
build: .
container_name: 'django'
ports:
- "8080:8000"
startup.sh
#!/usr/bin/env bash
pwd
cd mysite/mysite
pwd
ls
sed -i -e "s/ALLOWED_HOSTS = \[\]/ALLOWED_HOSTS = \[\'ここに使用するIPアドレス or ドメイン or *\'\]/p" ./settings.py
ls
cat settings.py
cd ..
pwd
python3 manage.py runserver 0.0.0.0:8000
requirements.txt
Django>=2.1
PyMySQL
終わりに
startup .sh 内にsed でsetting.pyの中身を変更したことで解決しました。
startup.sh のpwdはコンテナのlog を確かめるために書いてたやつです。
ちょっと立ち上げたかっただけなので、他に開発環境などは作っていません。今後,がっつり開発に使うならDBなどの設定も考えて行きたいと思います。