PHPackages                             fspringveldt/ss-dockerfile - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. fspringveldt/ss-dockerfile

ActiveSilverstripe-module

fspringveldt/ss-dockerfile
==========================

A very simple docker image definition

5151PHP

Since Apr 10Pushed 8y ago1 watchersCompare

[ Source](https://github.com/fspringveldt/ss-dockerfile)[ Packagist](https://packagist.org/packages/fspringveldt/ss-dockerfile)[ RSS](/packages/fspringveldt-ss-dockerfile/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (2)Used By (0)

ss-dockerfile
=============

[](#ss-dockerfile)

My local Dockerfile for SilverStripe for use with Docker-Compose, complete with XDebug support :)

Setup
-----

[](#setup)

1. Install docker by [following this guide.](https://docs.docker.com/engine/getstarted/step_one/)
2. Create a file named **.env** as below in your project's root directory, adding values after the equals signs

```
MYSQL_ROOT_PASSWORD=
MYSQL_DATABASE=
MYSQL_USER=
MYSQL_PASSWORD=
XDEBUG_REMOTE_HOST=
SS_ADMIN_USER=
SS_ADMIN_PASSWORD=
SS_ENVIRONMENT=
PMA_VIRTUAL_HOST=
DB_VIRTUAL_HOST=
SS_VIRTUAL_HOST=
```

3. Edit your local hosts file to point values given for PMA\_VIRTUAL\_HOST, DB\_VIRTUAL\_HOST and SS\_VIRTUAL\_HOST (defined in .env file above) to docker vm ip address
4. Create a file named **docker-compose.yml** in your project's root directory and copy the below into it:

```
version: "2"

services:
  db:
    image: mysql:5.7
    container_name: mysql
    volumes:
      - db-data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
      VIRTUAL_HOST: ${DB_VIRTUAL_HOST}
  ss:
    build: https://github.com/fspringveldt/ss-dockerfile.git#master
    container_name: ss-site
    links:
      - db
    depends_on:
      - db
    working_dir: /var/www/htdocs
    volumes:
      - ./:/var/www/htdocs
    environment:
      - VIRTUAL_HOST=${SS_VIRTUAL_HOST}
      - DATABASE_SERVER=db
      - XDEBUG_CONFIG=remote_host=${XDEBUG_REMOTE_HOST}
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - MYSQL_DATABASE=${MYSQL_DATABASE}
      - MYSQL_USER=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - SS_DEFAULT_ADMIN_USERNAME=${SS_ADMIN_USER}
      - SS_DEFAULT_ADMIN_PASSWORD=${SS_ADMIN_PASSWORD}
      - SS_ENVIRONMENT=${SS_ENVIRONMENT}
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
      - "80:80"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - ./ss-dockerfile/nginx-proxy.conf:/etc/nginx/conf.d/nginx-proxy.conf
  phpmyadmin:
    container_name: phpmyadmin
    image: phpmyadmin/phpmyadmin
    links:
      - db:mysql
    depends_on:
      - db
    ports:
      - "8181:80"
    environment:
      PMA_HOST: mysql
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      VIRTUAL_HOST: ${PMA_VIRTUAL_HOST}
volumes:
  db-data:
```

5. Run `docker-compose build` and then start your containers with `docker-compose up -d`. Use `docker-compose down` to stop them, and `docker-compose down -v` to remove mounted volumes.

At this stage, if all goes well, you can shell to your ss container `docker exec -ti ss-site /bin/bash`, from where you can run your `composer create-project ...` commands.

Additional resources:
---------------------

[](#additional-resources)

1. Below is an exampler of a SilverStripe environment file **(\_ss\_environment.php)** syntax:

```
