Coder Social home page Coder Social logo

filipovi / symfony-docker Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dunglas/symfony-docker

0.0 1.0 0.0 87 KB

A Docker-based installer and runtime for Symfony. Install: download and `docker-compose up`.

Home Page: https://dunglas.fr

Shell 24.26% Dockerfile 75.74%

symfony-docker's Introduction

Symfony Docker

A Docker-based installer and runtime for the Symfony web framework, with full HTTP/2 and HTTPS support.

Getting Started

  1. Run docker-compose up (the logs will be displayed in the current shell)
  2. Open https://localhost in your favorite web browser and accept the auto-generated TLS certificate
  3. Enjoy!

Selecting a Specific Symfony Version

Use the SYMFONY_VERSION environment variable to select a specific Symfony version.

For instance, use the following command to install Symfony 3.4:

SYMFONY_VERSION=3.4.* docker-compose up --build

To install a non-stable version of Symfony, use the STABILITY environment variable during the build. The value must be a valid Composer stability option) .

For instance, use the following command to use the master branch of Symfony:

STABILITY=dev docker-compose up --build

Debugging

The default Docker stack is shipped without a Xdebug stage. It's easy though to add Xdebug to your project, for development purposes such as debugging tests or API requests remotely.

Add a Development Stage to the Dockerfile

To avoid deploying Symfony Docker to production with an active Xdebug extension, it's recommended to add a custom stage to the end of the Dockerfile.

# Dockerfile
FROM symfony_php as symfony_php_dev

ARG XDEBUG_VERSION=2.8.0
RUN set -eux; \
	apk add --no-cache --virtual .build-deps $PHPIZE_DEPS; \
	pecl install xdebug-$XDEBUG_VERSION; \
	docker-php-ext-enable xdebug; \
	apk del .build-deps

Configure Xdebug with Docker Compose Override

Using an override file named docker-compose.override.yaml ensures that the production configuration remains untouched.

As example, an override could look like this:

version: "3.4"

services:
  php:
    build:
      context: .
      target: symfony_php_dev
    environment:
      # See https://docs.docker.com/docker-for-mac/networking/#i-want-to-connect-from-a-container-to-a-service-on-the-host
      # See https://github.com/docker/for-linux/issues/264
      # The `remote_host` below may optionally be replaced with `remote_connect_back`
      XDEBUG_CONFIG: >-
        remote_enable=1
        remote_host=host.docker.internal
        remote_port=9001
        idekey=PHPSTORM
      # This should correspond to the server declared in PHPStorm `Preferences | Languages & Frameworks | PHP | Servers`
      # Then PHPStorm will use the corresponding path mappings
      PHP_IDE_CONFIG: serverName=symfony

Then run:

docker-compose up -d

If docker-compose.yml and a docker-compose.override.yml are present on the same directory level, Docker Compose combines the two files into a single configuration, applying the configuration in the docker-compose.override.yml file over and in addition to the values in the docker-compose.yml file.

Troubleshooting

Inspect the installation with the following command. The requested Xdebug version should be displayed in the output.

$ docker-compose exec php php --version

PHP ...
    with Xdebug v2.8.0 ...

Editing Permissions on Linux

If you work on linux and cannot edit some of the project files right after the first installation, you can run docker-compose run --rm php chown -R $(id -u):$(id -g) . to set yourself as owner of the project files that were created by the docker container.

Credits

Created by Kévin Dunglas, co-maintained by Maxime Helias and sponsored by Les-Tilleuls.coop.

symfony-docker's People

Contributors

dunglas avatar maxhelias avatar fabpot avatar mateuszsip avatar vonalbert avatar pierstoval avatar ajardin avatar scaule avatar stof avatar fabiensalles avatar gmsantos avatar jorge07 avatar jevillard avatar maks-rafalko avatar mickaelandrieu avatar curry684 avatar itsazzad avatar boite avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.