Docker based development environment for SilverStripe 4 applications Can be used on multiple environments at the same time.
- Brett Tasker [email protected]
To install globally run:
composer global require brettt89/ss4-docker-compose
Make sure your ~/.composer/vendor/bin
directory is in your PATH.
echo 'export PATH=$PATH:~/.composer/vendor/bin/' >> ~/.bash_profile
Then you can run this script with docker-ss <docker-compose command>
in your project root.
docker-ss
in a nutshell is basically a wrapper for docker-compose
with some added functionality and checks. all docker-compose
commands should run as expected via docker-ss
Ensure you have an environment file setup in your project root with the following settings.
# DB credentials
SS_DATABASE_CLASS = "MySQLPDODatabase"
SS_DATABASE_SERVER = "database"
SS_DATABASE_USERNAME = "root"
SS_DATABASE_PASSWORD = ""
SS_DATABASE_NAME = "SS_mysite"
docker-ss up -d
By default, this setup will create 2 containers per project and 1 global nginx proxy (ss-proxy).
Containers:
- web (web server)
- Hostname:
{folder_name}.local
- Hostname:
- database (database server)
- Hostname:
{folder_name}.db.local
- Hostname:
NOTE: In order to access the servers by hostname you will need to map these domains to your "Hosts" IP.
E.g. File: /etc/hosts
, ({folder_name} = "./ss4"
)
127.0.0.1 ss4.local ss4.db.local
The docker-compose executable included in this package does some additional checks and configuration with commands. This should always be used over the native docker-compose function.
However all docker-compose commands can be used via this package as per usual.
docker-ss exec web ./vendor/bin/sake dev/build
docker-ss ssh
Host: {folder_name}.db.local
Port: 3306
Database: SS_mysite
Username: root
Password: <empty>