A script to painlessly set up a Docker environment for development of Wagtail
 
 
 
Go to file
Sævar Öfjörð Magnússon 76121d95c5 Improve readme 2020-01-24 15:44:38 +00:00
.gitignore Working initial setup 2020-01-24 11:00:57 +00:00
Dockerfile More setup 2020-01-24 11:36:33 +00:00
Dockerfile.frontend Build node_modules in image for faster startup 2020-01-24 12:53:26 +00:00
README.md Improve readme 2020-01-24 15:44:38 +00:00
docker-compose.yml Set volume mount mode to delegated 2020-01-24 14:45:06 +00:00
setup.sh Remove vagrant code 2020-01-24 10:40:06 +00:00

README.md

docker-wagtail-develop

A script to painlessly set up a Docker environment for development of Wagtail - inspired by vagrant-wagtail-develop

Initial work in Bristol sprint January 2020 by esperk and saevarom.

Setup

Requirements: Docker and Docker Compose (Docker Compose is included with Docker Desktop for Mac and Windows).

Open a terminal and follow those instructions:

# 1. Decide where to put the project. We use "~/Development" in our examples.
cd ~/Development
# 2. Clone the docker-wagtail-develop repository in a new "wagtail-dev" folder.
git clone git@github.com:saevarom/docker-wagtail-develop.git wagtail-dev
# 3. Move inside the new folder.
cd wagtail-dev/
# 4. Run the setup script. This will check out all the dependency repos.
./setup.sh
# 5. Build the containers
docker-compose build

It can take a while (typically 15-20 minutes) to fetch and build all dependencies and containers.

Here is the resulting folder structure:

.
├── libs          # Supporting libraries to develop Wagtail against.
├── wagtail       # Wagtail repository / codebase.
└── bakerydemo    # Wagtail Bakery project used for development.

Once setup is over,

# 5. Start your container setup
docker-compose up
# Success!

What you can do

See a list of running containers

$ docker-compose ps
              Name                             Command               State           Ports
---------------------------------------------------------------------------------------------------
docker-wagtail-develop_db_1         docker-entrypoint.sh postgres    Up      5432/tcp
docker-wagtail-develop_frontend_1   /bin/sh -c cp -r /node_mod ...   Up
docker-wagtail-develop_web_1        /bin/bash -c cd /code/wagt ...   Up      0.0.0.0:8000->8000/tcp

You can open a django shell session

docker exec -it docker-wagtail-develop_web_1 python manage.py shell

You can open a shell on the web server

docker exec -it docker-wagtail-develop_web_1 bash

Getting ready to contribute

Here are other actions you will likely need to do to make your first contribution to Wagtail.

Set up git remotes to Wagtail forks (run these lines outside of the Docker instances, on your machine):

cd ~/Development/wagtail-dev/wagtail
# Change the default origin remote to point to your fork.
git remote set-url origin git@github.com:<USERNAME>/wagtail.git
# Add wagtail/wagtail as the "upstream" remote.
git remote add upstream git@github.com:wagtail/wagtail.git
# Pull latest changes from all remotes / forks.
git pull --all

TODO

  • Set up an elasticsearch service container
  • Test on Windows and Linux