Skip to content

Instantly share code, notes, and snippets.

@lukaszlach
Created April 5, 2022 09:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lukaszlach/5eb04bcdb7c0405f54e08a54762d4f51 to your computer and use it in GitHub Desktop.
Save lukaszlach/5eb04bcdb7c0405f54e08a54762d4f51 to your computer and use it in GitHub Desktop.
.
├── app
│   ├── controller
│   ├── model
│   └── view
├── composer.json
├── .develtio-runner
│   ├── config.env
│   ├── DEVELTIO_RUNNER.md
│   └── Makefile
├── develtio-runner
│   ├── env
│   │   ├── global.env
│   │   ├── local
│   │   │   ├── config.env
│   │   │   ├── docker-compose-app.yml
│   │   │   ├── docker-compose-tools.yml
│   │   │   └── Dockerfile
│   │   ├── production
│   │   │   ├── config.env
│   │   │   ├── docker-compose-app.yml
│   │   │   └── Dockerfile
│   │   └── staging
│   │       ├── config.env
│   │       ├── docker-compose-app.yml
│   │       └── Dockerfile
│   └── etc
│       └── rc.d
│           ├── container-start
│           ├── container-stop
│           ├── container-stopping
│           └── image-build
├── public
│   └── index.php
├── README.md
└── vendor
# Build

[R] ./.develtio-runner/docker/app/php/Dockerfile (FROM php:7.3-fpm-apache)
    only base image, no source code inside
[P] ./develtio-runner/env/local/Dockerfile (FROM develtio-runner-app)
    optional, extended base image with the source code

# Start

PROJECT_LANG=php
PROJECT_ENGINE=wordpress

## make start-tool

[R] ./.develtio-runner/docker/core/docker-compose-core.yml (no services, shared networks and volumes)
[R] ./.develtio-runner/docker/tools/docker-compose.yml (global tools - ngrep, tcpdump)
[R] ./.develtio-runner/docker/tools/php/docker-compose.yml (optional, php tools - composer, phpunit)
[R] ./.develtio-runner/docker/tools/wordpress/docker-compose.yml (optional, wordpress tools - wp-cli)
[P] ./develtio-runner/env/local/docker-compose-tools.yml (optional, additional project-level tools)

## make start

[R] ./.develtio-runner/docker/core/docker-compose-core.yml (app service, shared networks and volumes)
[R] ./.develtio-runner/docker/app/wordpress/docker-compose.yml (optional, wordpress-crafted)
[P] ./develtio-runner/env/local/docker-compose-app.yml (optional, project-level extensions to above)

## Configuration load order

[R] ./.develtio-runner/config.env (default variables)
[P] ./develtio-runner/env/global.env (global project variables)
[P] ./develtio-runner/env/local/config.env (per-environment project variables)

> No need to edit [R] files by developers, there is always project-level file in the end
> Add `make ls-tool` - list all available tools (with descriptions)
> Add `make ls` - list all services in the stack
> Runner as submodule hidden under .develtio-runner, locked to specific commit with possibility to upgrade
> Possibility to get runner, set `PROJECT_LANG`, create phpinfo index.php and make start
> Remove start-tool from start-all
> Add `container_name` to lb container, so that multiple instances will be handled w/o error; multiple lbs, if needed at all, need downstream load-balancer, Traefik should do
> Example for second language, Ruby or Node.JS or else
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment