Home  >  Article  >  Operation and Maintenance  >  Docker installs Symfony: achieving rapid development

Docker installs Symfony: achieving rapid development

王林
王林Original
2023-10-21 10:37:48809browse

Docker installs Symfony: achieving rapid development

Docker installation of Symfony: for rapid development

Preface:
Symfony is a popular PHP framework that provides many tools and components to help developers Build high-quality web applications quickly. Docker is a containerization platform that can achieve rapid deployment of applications and isolation of environments. In this article, we will explore how to install and configure Symfony using Docker for rapid development.

  1. Installing Docker and Docker Compose
    Before you begin, you need to install Docker and Docker Compose on your machine. You can find the corresponding installation tutorial on the Docker official website according to your operating system. After the installation is complete, you can run the following command in the terminal to verify whether the installation was successful:
docker --version
docker-compose --version
  1. Create Symfony Project
    In the terminal, use the following command to create a new Symfony project :
docker run --rm -it -v $(pwd):/app composer create-project symfony/website-skeleton my-symfony-app

The above command will create a new Symfony project using Composer, and the project will be stored in the "my-symfony-app" folder in the current directory.

  1. Create Docker configuration file
    Create a file named "docker-compose.yml" in the root directory of the Symfony project to define the configuration of the Docker container.
version: "3"
services:
  web:
    build: .
    ports:
      - "8000:8000"
    volumes:
      - .:/app
    depends_on:
      - db
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: symfony
      MYSQL_USER: symfony
      MYSQL_PASSWORD: symfony

The above configuration file defines two services: web and db. The web service uses the Dockerfile in the current directory to build the container and mounts the Symfony project into the container's /app directory. The web service also maps the container's port 8000 to the host's port 8000. The db service uses the official MySQL image and defines some environment variables.

  1. Create Dockerfile
    Create a file named "Dockerfile" in the root directory of the Symfony project to define the configuration of the Docker image that creates the web service.
FROM node:14 AS build-node
WORKDIR /app
COPY . /app
RUN npm install && npm run build

FROM php:8.0-apache
WORKDIR /app
COPY --from=build-node /app /app
RUN docker-php-ext-install pdo pdo_mysql

The Dockerfile above defines two stages. In the first stage, front-end resources are built using Node.js images. Then, in the second phase, the Symfony application is built using PHP and the Apache image, and the front-end resources are copied into the container.

  1. Build and run the Symfony application
    In the terminal, use the following command to build and run the Symfony application:
docker-compose up -d --build

The above command will be based on docker-compose Configuration in .yml file to build and run the container. The "-d" flag sets the container to run in the background.

  1. Visit the Symfony application
    Open your browser and visit "http://localhost:8000", you will be able to see the Symfony welcome page. At this point, you have successfully installed and configured a Symfony application using Docker.

Summary:
This article explains how to use Docker and Docker Compose to install and configure Symfony applications. By deploying Symfony into a Docker container, we can quickly set up a development environment and achieve rapid application deployment and environment isolation. I hope this article was helpful and I wish you success in your Symfony development!

The above is the detailed content of Docker installs Symfony: achieving rapid development. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn