initx/php-docker-skeleton

Universal example of PHP app dockerized


Keywords
aws, aws-ecs, aws-fargate, continous-deployment, docker, github-actions, php
License
MIT

Documentation

Build and deploy

Example PHP app dockerized

This repository shows example usage of Docker in your PHP app. It solves common problems when working with Docker on dev/prod environments.

  • No more permission denied issues thanks to creating user with same ID as yours
  • No more dev/prod Dockerfiles. Just one Dockerfile per container thanks to using multi-stage builds
  • Easy & simple way to add another container such as redis, db and so on

Dockerfile's located in .docker and it's subdirectories.

App is built and pushed through actions to AWS ECR and then deployed to ECS (Fargate). See .github/workflows/build-and-deploy.yml.

Live deploy link here

Try it out

1. Clone

$ git clone git@github.com:initx/php-docker-skeleton.git \
    && cd php-docker-skeleton

2. Run dev environment

$ docker-compose up -d

3. Dig into app container

$ docker exec -it app_php bash

Tip: it is cool to create alias for entering app container in your .bashrc or .zshrc:

alias app_bash='docker exec -it app_php bash'

4. Install dependencies

$ composer install

5. Visit localhost:8080