/bedrock-sage-docker

A basic setup for bedrock and sage

Primary LanguagePHP

Introduction

While bedrock/trellis/sage is a very well thought project, and makes the complete development lifecycle i.e. design -> code -> release -> deploy a breeze, the trellis dependency on vagrant makes it slow to develop. This is my attempt to create a boiler plate. The project structure is loosely inspired from trellis recommended structure.

Project Structure

Bedrock

bedrock is present at site folder

Sage

sage is present at /site/web/app/themes/humans. I know, humans. To rename (please do look at gettings strated), you can do the following, but you should really follow getting started.

unlink theme
cd /site/web/app/themes
rm -rf humans
composer create-project roots/sage <theme-name>
cd ../../../
ln -s /site/web/app/themes/<theme-name>

forget about yarn for now.

Trellis

Trellis is at /trellis.

Getting Started

First clone the project.

git clone --depth=1 git@github.com:debuggerpk/bedrock-sage-docker.git $PROJECT_NAME && rm -rf $PROJECT_NAME/.git

where $PROJECT_NAME is your project name e.g. www.example.com or blog.your-name.com or whatever.

Trellis/Sage: The latest and greatest

To upgrade to latest trellis

cd $PROJECT_NAME && rm -rf trellis && git clone --depth=1 git@github.com:roots/trellis.git && rm -rf trellis/.git

This will remove this trellis and download the latest release.

If you look at the folder structure, you will see a soft link by the name theme -> site/web/app/themes/humans. humans is basically sage. You would want the latest and greatest here too? right? No Problem. Follow the steps. This assumes that you are in your $PROJECT_NAME folder.

unlink theme
rm -rf humans
composer create-project roots/sage $THEME_NAME

When composer is creating a new project for you, On the prompt, devUrl, point it to http://wp:8080. This is important, if you don't want to mess with docker-compose.yml file. Also, don't do yarn install or yarn build. Leave that. Docker will take care of that.

cd ../../../
ln -s /site/web/app/themes/$THEME_NAME theme

you can take a look at docker-compose.yml. All the docker related files are at /docker folder. This is a minamal setup, to get you quickly started wtih docker, bedrock, trellis and sage without loosing any of the benefits of either of these. Follow the instructions on each of the package documentation to get started on all them. Now for the fireworks ...

docker-compose up --build --force-recreate -d

Bonus

Everytime the wp image runs, it will keep your composer and composer.lock upto date with latest packages.

To install more npm package to themes, lets say turbolinks npm package

docker exec -it $THEME_CONTAINER yarn add turbolinks

you can get the name of the theme container by doing docker ps when your docker-compose is running.