All Projects → GaetanRole → symfony-lts-docker-starter

GaetanRole / symfony-lts-docker-starter

Licence: other
🐳 Dockerized your Symfony project using a complete stack (Makefile, Docker-Compose, CI, bunch of quality insurance tools, tests ...) with a base according to up-to-date components and best practices.

Programming Languages

PHP
23972 projects - #3 most used programming language
Makefile
30231 projects
HTML
75241 projects
CSS
56736 projects
Dockerfile
14818 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to symfony-lts-docker-starter

xray-action
... a GitHub action to import test results into "Xray" - A complete Test Management tool for Jira.
Stars: ✭ 16 (-58.97%)
Mutual labels:  ci, cd, testing-tools
gke-demo
Demonstration of complete, fully-featured CI/CD and cloud automation for microservices, done with GCP/GKE
Stars: ✭ 47 (+20.51%)
Mutual labels:  ci, cd
howtheydevops
A curated collection of publicly available resources on how companies around the world practice DevOps
Stars: ✭ 318 (+715.38%)
Mutual labels:  ci, cd
nodejs-hackathon-boilerplate-starter-kit
Just a Hackaton/Startup Full-stack node.js starter
Stars: ✭ 37 (-5.13%)
Mutual labels:  starter-kit, starter-project
dohq-ai-best-practices
Внедрение и эксплуатация PT Application Inspector. Подробнее: https://habr.com/ru/company/pt/blog/557142/
Stars: ✭ 22 (-43.59%)
Mutual labels:  ci, best-practices
ruby-sinatra-starter-app
A starter project for Ruby On Sinatra web app projects to introduce programmers to Ruby programming.
Stars: ✭ 36 (-7.69%)
Mutual labels:  starter-kit, starter-project
www.go.cd
Github pages repo
Stars: ✭ 39 (+0%)
Mutual labels:  ci, cd
setup-graalvm
No description or website provided.
Stars: ✭ 63 (+61.54%)
Mutual labels:  ci, cd
plugins
Codefresh plugins repository
Stars: ✭ 16 (-58.97%)
Mutual labels:  ci, cd
wordpress-skeleton
A base repository structure for rtCamp's WordPress sites, pre-configured to use Github Actions
Stars: ✭ 32 (-17.95%)
Mutual labels:  ci, cd
run-aspnetcore-basics retired
One Solution - One Project for web application development with Asp.Net Core & EF.Core. Only one web application project which used aspnetcore components; razor pages, middlewares, dependency injection, configuration, logging. To create websites with minimum implementation of asp.net core based on HTML5, CSS, and JavaScript. You can use this boi…
Stars: ✭ 15 (-61.54%)
Mutual labels:  starter-kit, starter-project
flagsmith-java-client
Java Client for Flagsmith. Ship features with confidence using feature flags and remote config. Host yourself or use our hosted version at https://www.flagsmith.com/
Stars: ✭ 16 (-58.97%)
Mutual labels:  ci, cd
github-task-manager
receive github hook, notify agent, receive task results, notify github
Stars: ✭ 13 (-66.67%)
Mutual labels:  ci, cd
Infrastructure
Templates and assets used to launch and manage many aspects of PRX's applications and services
Stars: ✭ 40 (+2.56%)
Mutual labels:  ci, cd
horusec-engine
Horusec analysis engine
Stars: ✭ 18 (-53.85%)
Mutual labels:  ci, cd
botfuel-sample-starter
Starter bot using Botfuel Dialog
Stars: ✭ 24 (-38.46%)
Mutual labels:  starter-kit, starter-project
depsbot
⚙️ GitHub action to check freshness of your deno dependencies
Stars: ✭ 28 (-28.21%)
Mutual labels:  ci, best-practices
cli-template
⚗ The most advanced CLI template on earth! Featuring automatic releases, website generation and a custom CI-System out of the box.
Stars: ✭ 43 (+10.26%)
Mutual labels:  ci, cd
materializecss starter
A Starter Boilerplate for Materializecss, ionicons, font-awesome and Animatecss
Stars: ✭ 58 (+48.72%)
Mutual labels:  starter-kit, starter-project
ansible-tower-cicd
A framework for continuous integration and continuous delivery with Ansible Tower.
Stars: ✭ 37 (-5.13%)
Mutual labels:  ci, cd

symfony-lts-docker-starter

Symfony Docker starter is an up-to-date Symfony project (4.4 version) with a whole Docker stack, using a CI (Gitlab-CI here) and so on, according to best practices on a set of components listed below.

Software License

Author

You can take this repository and replace the Symfony project in it, with your, to take advantage of the Docker stack. Remember to keep the Symfony Makefile.

Installation instructions

Docker contents

Project dependencies

Take a look on app/symfony/composer.json and app/symfony/package.json.

Project requirements

Suggested requirements (for Mac and Windows)

Tree view

app/
    symfony/
        Makefile
        ...
docker/
    nginx/
    web/
.gitlab-ci.yml
docker-compose.gitlab-ci.yml
docker-compose.override.yml.dist
docker-compose.yml
Makefile
README.md

Project view

Alt text

Installation

$ make install

You can edit the new docker-compose.override.yml and app/symfony/.env.local with your own configuration for DB, Docker ports and PHPStorm configuration.

Keep in mind that you can use both Makefiles, especially the one specific to Symfony directory make symfony:"rule" and independent from Docker. If Composer stops due to memory, launch it separately or increase the size of your containers.

Usage

Go on: http://localhost:8080/ (or another port specified in your ./docker-compose.override.yml)

- Wanna use something ?

$ make                  # Self documented Makefile
$ make stop             # Stop Docker containers

## Samples calling Symfony Makefile and bin/console from root folder
$ make symfony:update   # Use app/symfony/Makefile update rule
$ make sf-console:translation:update ARGS="--output-format xlf --dump-messages --force en"  # Use bin/console
$ make sf-console:c:c ARGS="--env=dev"

Take a look on Makefile rules to know which commands to use.

Tests

$ make symfony:tests    # Behat and PHPUnit tests
$ make symfony:qa       # Quality & Assurance tools

Docker advice

If you want to fully merge your Symfony application with Docker and not take advantage of my design, you can keep this directory structure but split dependencies in different Docker containers. For example, with Node dependency (for Yarn used by Webpack-Encore):

# In docker-compose.yml
  node:
    build: ./docker/node
    container_name: starter_node
    working_dir: /srv
    restart: on-failure
    
# In docker-compose.override.yml
  node:
    volumes:
      - "./:/srv"
      
# Create a Node Dockerfile
FROM    node:13.10-alpine
LABEL   maintainer="Gaëtan Rolé-Dubruille <[email protected]>"
RUN     apk add --no-cache su-exec && \
        addgroup bar && \
        adduser -D -h /home -s /bin/sh -G bar foo
RUN     apk add yarn --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ && \
        yarn install
COPY    ./bin/entrypoint.sh /usr/local/bin/entrypoint
RUN     set -o errexit -o nounset -o xtrace; \
        chmod a+x /usr/local/bin/entrypoint
ENTRYPOINT ["/usr/local/bin/entrypoint"]
# In Makefile, call Yarn from the Node container
YARN = $(DOCKER_COMPOSE) exec -T node /usr/local/bin/entrypoint yarn

Contributing

Do not hesitate to improve this repository, creating your PR on GitHub with a description which explains it.

Ask your question on [email protected].

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].