Guide
March 16th

Docker Symfony tutorial. Dockerize Symfony app in 3 minutes.

This quickstart guide tutorial provides a basic introduction to the Symfony framework running on docker. This is a great starting point if you are brand new to the Symfony framework or if you want to have your docker Symfony app.

Prerequisites

Before you start, you need to have some certain prerequisites in place:

  • PHP 7.1.3+
  • Local machine running the latest version of Docker.

Get Started

Let's create a Symfony project and then see how we can dockerize it using Docker.

Symfony Requirements

In this tutorial we will use Symfony 4. These are the technical requirements to run it:

  • PHP version: 7.1.3 or higher
  • PHP extensions: (all of them are installed and enabled by default in PHP 7+)
    • Ctype
    • iconv
    • JSON
    • PCRE
    • Session
    • SimpleXML
    • Tokenizer

Step 1 - Install Symfony

Symfony utilizes Composer to manage its dependencies, similar to Laravel. So, before using Symfony, make sure you have Composer installed on your machine.

Install Composer

Composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you. To a install it quickly, just open up a terminal and run this command:

$ curl -Ss getcomposer.org/installer | php

header image

Composer is multi-platform and it run equally well on Windows, Linux and macOS. Here you will get more information regarding how to install composer in each platform:

To make things simple, Symfony provides a tool to quickly check if your system meets these requirements. In addition, the tool provides recommendations if applicable. So run this command to install the tool:

$ composer require symfony/requirements-checker

Once you have fixed all the reported issues, uninstall the requirements checker to avoid leaking internal information about your application to visitors:

$ composer remove symfony/requirements-checker

Step 2 - Create a Symfony Project

You can create a symfony skeleton project by issuing the Composer create-project command in your terminal:

composer create-project symfony/website-skeleton symfony-4-tutorial

header image

The project directory will contain the following folders:

  • config: holds config files
  • src: where we place our PHP code
  • bin: contains executable files
  • var: where automatically-created files are stored (cache, log)
  • vendor: contains third-party libraries
  • public: contains publicly accessible files

Then, to install all dependencies and run the project, you need to run the following commands:

$ cd symfony-4-tutorial
$ composer install
$ composer require --dev symfony/web-server-bundle
$ php bin/console server:start

You will see your Symfony server running on: http://127.0.0.1:8000

header image

Congratulations, you’ve created a Symfony project!

Step 3 - Dockerize the Project

Setup Docker

Before creating a container for the Symfony application and shipping it off, you need to install Docker on your local machine. For learning purpose, you will install Docker Community Edition. Select your OS from the list below and follow the setup instructions:

Make the docker App image

The next stage to improve your docker php development workflow is adding a Dockerfile to your project. The structure of a Dockerfile can be considered a series of instructions on how to build your container/image.

Start the Dockerfile by creating an empty file named Dockerfile in the root of your project. Then, complete each instruction according to the following example:

# Dockerfile
FROM php:7.2-cli

RUN apt-get update -y && apt-get install -y libmcrypt-dev

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN docker-php-ext-install pdo mbstring

WORKDIR /app
COPY . /app

RUN composer install

EXPOSE 8000
CMD php bin/console server:run 0.0.0.0:8000

Building and Running the Container

Building the container is very straight forward once you have Docker and Docker Machine on your system. The following command will look for your Dockerfile and download all the necessary layers required to get your container image running. Afterwards, it will run the instructions in the Dockerfile and leave you with a container that is ready to start.

To build your php laravel docker container, you will use the docker build command and provide a tag or a name for the container, so you can reference it later when you want to run it. The final part of the command tells Docker which directory to build from.

$ docker build -t symfony-tutorial .

The final step is to run the container you have just built using Docker:

$ docker run -it -p 8000:8000 symfony-tutorial

The command tells Docker to run the container and forward the exposed port 8000 to port 8000 on your local machine. After you run this command, you should be able to visit http://localhost:8000 in your browser.

You can see the Docker containers that are currently running on your system (along with their Container IDs) with:

$ docker ps -a

To turn off your Docker container, run:

$ docker stop container_id

Push to cloud

1. Create your app

In order to install your docker php example, just create a new app via cli or admin panel and set a port to 8000.

header image

2. Push your docker container

header image header image

3. Set up resources

header image

4. Logs and app status

header image

5. Release your app

After to click on the release button, your php docker tutorial will be deployed, Just click on the generated URL and you will get your app running.

header image header image

Now you can deploy your Symfony app without a massive build time.

Bonus 1: SSL certificate for HTTPS

It's already done for you. If you need to connect your custom domain, SSL certificate will be provided for it.


Bonus 2: Autoscaling

With autoscaling the app will be scaled up when CPU and RAM load goes up and scaled down when it goes down.

Now you can deploy your Symfony app without a massive build time.

Dockerize your Job

Just for $2/month
Share this article:

Ask a question

Please type your name.
Please provide your email address.
Please tell us a bit more

More great guides

Docker nodejs express tutorial

Docker NodeJS Express guide

Simple Nodejs Socket guide for docker deploy. Use it for comfort start with us.

Read Guide
Docker python django tutorial

Docker Python Django tutorial

This is a brief tutorial that presents how you can run a simple 'Hello World'-style web application written in Django in docker.

Read Guide
Docker PHP laravel tutorial

Docker PHP laravel tutorial

This quickstart guide provides a basic introduction to the Laravel framework running on docker. This is a great starting point if you are brand new to the Laravel framework or if you want to have your docker PHP app.

Read Guide
7 times faster deployment
Dockerize automaticaly completes deployment after receiving your Docker image
50% of AWS price
We don’t have any hidden prices and will never ask you to pay extra fee for our services
Open Sidebar Close Sidebar