LoginSignup
6
6

More than 3 years have passed since last update.

Docker + Django + Wagtail を使ってCMS構築する - 導入編

Posted at

はじめに

CMSに少し触れてみたいなあとふと思いついて、この記事を書いてみました。
CMSといえば、私は真っ先にWordPressを思い浮かべます。

しかしながら、開発でDjangoを使っていることもあり、
面白そうだと思いまして、今回はDjango製のCMSを使っていきます。

WagtailとはDjango(Python)上で動くCMSです。
オープンソースで、インストール手順も下記ページを見る限り簡単に導入できそうと
思い、一連の流れを記事にしてみました。
http://docs.wagtail.io/en/v2.6.1/getting_started/index.html

他のQiita記事でも導入方法は載っていたので、
私の記事ではDockerComposeを使用した構築方法を載せております。

環境の構築 - ファイルの作成

Wagtailを導入するコンテナのDockerfileを記載していきます。

Dockerfile
FROM python:3.6
ENV PYTHONUNBUFFERED 1

WORKDIR /server
ADD . /server/
RUN pip install --upgrade pip
RUN pip install wagtail

DBやNginxを今後入れられるよう、
Docker Composeファイルも作っておきます。

docker-compose.yml
version: '3'

services:

  cms:
    build:
      context: ./cms
      dockerfile: Dockerfile
    command: 'python manage.py runserver 0.0.0.0:8000'
    ports:
      - 8000:8000
    volumes:
      - ./cms:/server/

環境の構築 - サーバーの立ち上げ

コマンドにて、Wagtailプロジェクトを立ち上げます。
管理画面にログインする際のユーザーも作成します。

$ docker-compose run cms wagtail start mysite
$ docker-compose run cms python ./mysite/manage.py createsuperuser

導入する際に使用したコンテナを
Wagtailプロジェクトに向き先を変えて起動します。

Dockerfile
FROM python:3.6
ENV PYTHONUNBUFFERED 1

WORKDIR /server
ADD . /server/
RUN pip install --upgrade pip
RUN pip install wagtail
RUN pip install -r ./mysite/requirements.txt
RUN python ./mysite/manage.py migrate

サーバーの立ち上げ

サーバーの立ち上げを行います。
もしうまくいかない方は docker-compose run ./mysite/manage.py migrate を行なってください。

$ docker-compose build
$ docker-compose up -d

localhost:8000 にアクセスすると、
初期ページが見ることができると思います。
wag2.jpg

また、管理画面の方も localhost:8000/admin から確認できます
wag.jpg

まとめ

今回は、環境を構築〜サーバー立ち上げまでを行いました。
次回は実際にブログを作成することを意図とした実装をしていきたいと思います。

現在弊社では、HRモンスターと呼ばれる
採用の新しいスタイルを提供するサービスをローンチいたしました。

ローンチ後のさらなる機能追加、改善などのPDCAサイクルを回すべく、
エンジニアを募集しております。
https://www.wantedly.com/projects/341182

Kubernetes、Vue.js(Javascript)、Django(Python)といったモダンな技術を使って、
開発しておりますので、もしご興味がある方はぜひ、ご応募お待ちしております。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6