fabriman/symfony-docker

Symfony应用的Docker环境

1.1.4 2024-08-20 08:47 UTC

This package is auto-updated.

Last update: 2024-09-28 09:05:14 UTC


README

本指南将帮助您设置项目环境,包括安装依赖项和使用提供的shell脚本设置测试数据库。

环境基于

  • Ubuntu 22.04 LTS
  • Nginx
  • PHP 8.2
  • MariaDb 11.0.3

Dockerfile包含包括sqlite、node和mssql库在内的完整PHP库面板。完整列表请参阅Dockerfile

安装

composer require fabriman/symfony-docker

要将以下docker-compose文件添加到您的根项目中的示例

services:

  server:
    build:
      dockerfile: ./vendor/fabriman/symfony-docker/runtimes/Dockerfile
    command: [ "/usr/bin/supervisord" ]
    restart: on-failure
    environment:
      SERVER_NAME: ${SERVER_NAME:-localhost}, php:80
    ports:
      - "8001:80"
      - "2201:22"
    # --------------------------------------
    # Avoid volumes if you are using windows (use ssh connection transfer instead)
    # Connection for ssh is:
    # host: localhost
    # port: 2201
    # login: root
    # password: rootpsw
    volumes:
      - '.:/var/www/html:cached'
      - '/var/www/html/vendor'
      - '/var/www/html/var'
      - '/var/www/html/node_modules'
    # --------------------------------------
    links:
      - database
  
  database:
    image: mariadb:11.0.3
    restart: on-failure
    environment:
      # You should definitely change the password in production
      MYSQL_ROOT_PASSWORD: rootpsw
      MYSQL_TCP_PORT: 3301
    volumes:
      - "dbdata:/var/lib/mysql"
    ports:
      - "3301:3301"
    expose:
      - "3301"

先决条件

在设置测试环境之前,请确保您已安装以下内容

  • 在您的.env.local文件上设置APP_NAME环境变量

  • Docker(用于容器管理)

  • 在Windows上,打开cmd并将Ubuntu设置为WSL2的默认发行版

    $ wsl -l -v #Check your actual Repo and version
    # If your version is Not Ubuntu 2
    $ wsl --install Ubuntu
    $ wsl -s Ubuntu 
    $ wsl --set-default-version 2
    
  • Node.js

  • npm

  • Composer(用于PHP依赖项)

  • 为fm脚本创建别名

    $ echo "alias fm='bash vendor/bin/fm'" >> ~/.bashrc && source ~/.bashrc
    

运行设置脚本

我们提供了一个shell脚本来自动化设置过程。按照以下步骤运行脚本

  1. 运行引导

    # On Windows, access your wsl and go inside your root path
    $ wsl
    $ cd /mnt/c/YOUR_PATH_TO_THE_PROJECT
    
    # Run the bootstrap
    $ fm up:build

访问项目

网站

https://:CHOOSED_PORT_ON_COMPOSE_FILE

创建测试数据库

  • 安装DoctrineFixturesBundle

  • 在您的composer.json下的scripts中添加以下行

      "test:database:bootstrap": [
          "@php bin/console doctrine:schema:drop --force --env=test",
          "@php bin/console doctrine:schema:create --env=test",
          "@php bin/console doctrine:fixtures:load -q --env=test"
      ],
      "test": "@php bin/phpunit  --colors=always"
    
  • 然后运行

    $ fm composer test:database:bootstrap

运行测试

$ fm composer test

如有需要,重新构建本地数据库

$ composer test:database:bootstrap

NPM

如果您需要npm运行

  fm npm install
  fm npm run build

许可证

本项目受MIT许可证许可。有关详细信息,请参阅LICENSE文件。

Author: "Fabrizio Manca",
Email: "fabriziomanca87@gmail.com"