Рейтинг:0

# Запустите «composer require symfony/mercure-bundle», чтобы установить и настроить интеграцию с Mercure.

флаг co

Я пытаюсь создать стек контейнеров для приложения и использую .env файл, чтобы передать различные параметры, которые будут использоваться в процессе сборки.

Конфигурация стека:

    Докер версии 20.10.14, сборка a224086d
    Docker Compose версии v2.5.1
    Докер для настольных ПК версии 4.8.2 (79419)
.
âââ докер
â php
â âââ Кэдди
âââ Dockerfile
âââ Docker-compose.yml
âââ .env
âââ README.md

.env содержание:

###> symfony/framework-bundle ###
APP_NAME=приложение
APP_ENV=dev
APP_SECRET=05425c77d4ec3dc1c301c4547ca4ac89
###< symfony/framework-bundle ###

###> параметр docker-compose ###
SERVER_NAME=${APP_NAME}.local
PHP_ВЕРСИЯ=7.4
COMPOSER_VERSION=2.2.10
CADDY_VERSION=2
HTTP_PROXY=''
ВЕРСИЯ_APCU=5.1
PCOV_VERSION=1.0
XDEBUG_VERSION=3.1.2

MARIABDB_VERSION=10.6
MARIADB_DATABASE=${APP_NAME}_data
MARIADB_ROOT_PASSWORD=корень
MARIADB_USER=пользователь
MARIADB_USER_PASSWORD=пользователь
###< параметр docker-composer ###

Docker-compose.yaml содержимое файла:

версия: "3.7"
Сервисы:
  дБ:
    container_name: ${APP_NAME:-app}_db
    изображение: mariadb:${MARIADB_VERSION:-10.6}
    перезапуск: если не остановлен
    порты:
      - "3306:3306"
    тома:
      - db_socket:/var/run/mysqld/
    среда:
      MARIADB_INITDB_SKIP_TZINFO: правда
      TZ: Европа/Париж
      MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD:-root}
      MARIADB_DATABASE: ${MARIADB_DATABASE}
      MARIADB_USER: ${MARIADB_USER:-пользователь}
      MARIADB_PASSWORD: ${MARIADB_PASSWORD:-пользователь}

  php:
    имя_контейнера: ${ИМЯ_ПРИЛОЖЕНИЯ:-приложение}_php
    перезапуск: если не остановлен
    зависит от:
      - дб
    строить:
      контекст: .
      цель: php_dev
      аргументы:
        PHP_VERSION: ${PHP_VERSION:-7.4}
        COMPOSER_VERSION: ${COMPOSER_VERSION:-2.2.10}
        HTTP_PROXY: ${HTTP_PROXY}
        XDEBUG_VERSION: ${XDEBUG_VERSION:-5.1.2}
    # https://github.com/compose-spec/compose-spec/blob/master/spec.md#healthcheck
    проверка состояния здоровья:
      интервал: 10 с
      тайм-аут: 3 с
      повторы: 3
      начальный_период: 30 сек.
    тома:
      - php_socket:/var/run/php
      - ./приложение:/срв/приложение/
    среда:
      # Запустите «composer require symfony/orm-pack», чтобы установить и настроить Doctrine ORM.
      DATABASE_URL: mysql://${MARIA_USER:-symfony}:${MARIA_USER_PASSWORD:-ChangeMe}@db:3306/${MARIA_DB:-app}?unix_socket=/var/run/mysqld/&serverVersion=${MARIA_VERSION:- 10.6}
      # См. https://docs.docker.com/docker-for-mac/networking/#i-want-to-connect-from-a-container-to-a-service-on-the-host
# См. https://github.com/docker/for-linux/issues/264
# `client_host` ниже можно при желании заменить на `discover_client_host=yes`
# Добавьте `start_with_request=yes` для запуска сеанса отладки при каждом запросе
XDEBUG_CONFIG: >-
client_host=host.docker.internal
XDEBUG_MODE: отладка
# Это должно соответствовать серверу, объявленному в PHPStorm `Preferences | Языки и платформы | PHP | Серверы`
# Затем PHPStorm будет использовать соответствующие сопоставления путей
PHP_IDE_CONFIG: serverName=symfony
# дополнительные_хосты:
# # Убедитесь, что host.docker.internal правильно определен в Linux
# - host.docker.internal: хост-шлюз
# Запустите «composer require symfony/mercure-bundle», чтобы установить и настроить интеграцию с Mercure.
# https://symfony.com/doc/current/mercure.html
MERCURE_URL: ${CADDY_MERCURE_URL:-http://caddy/.well-known/mercure}
MERCURE_PUBLIC_URL: https://${ИМЯ_СЕРВЕРА:-localhost}/.well-known/mercure
MERCURE_JWT_SECRET: ${CADDY_MERCURE_JWT_SECRET:-!ChangeMe!}
Кэдди:
строить:
контекст: .
цель: app_caddy
аргументы:
CADDY_VERSION: ${CADDY_VERSION:-2}
зависит от:
- пхп
перезапуск: если не остановлен
тома:
- php_socket:/var/run/php
- caddy_data:/данные
- caddy_config:/config
порты:
# HTTP
- цель: 80
опубликовано: ${HTTP_PORT:-80}
протокол: TCP
# HTTPS
- цель: 443
опубликовано: ${HTTPS_PORT:-443}
протокол: TCP
# HTTP/3
- цель: 443
опубликовано: ${HTTP3_PORT:-443}
протокол: udp
среда:
SERVER_NAME: ${SERVER_NAME:-localhost, caddy:80}
MERCURE_PUBLISHER_JWT_KEY: ${CADDY_MERCURE_JWT_SECRET:-!ChangeMe!}
MERCURE_SUBSCRIBER_JWT_KEY: ${CADDY_MERCURE_JWT_SECRET:-!ChangeMe!}
тома:
php_socket:
db_socket:
caddy_data:
caddy_config:# См. https://github.com/docker/for-linux/issues/264
# `client_host` ниже можно при желании заменить на `discover_client_host=yes`
# Добавьте `start_with_request=yes` для запуска сеанса отладки при каждом запросе
XDEBUG_CONFIG: >-
client_host=host.docker.internal
XDEBUG_MODE: отладка

# Это должно соответствовать серверу, объявленному в PHPStorm `Preferences | Языки и платформы | PHP | Серверы` # Затем PHPStorm будет использовать соответствующие сопоставления путейPHP_IDE_CONFIG: serverName=symfony

# дополнительные_хосты:
# # Убедитесь, что host.docker.internal правильно определен в Linux
# - host.docker.internal: хост-шлюз
# Запустите «composer require symfony/mercure-bundle», чтобы установить и настроить интеграцию с Mercure.
# https://symfony.com/doc/current/mercure.html
MERCURE_URL: ${CADDY_MERCURE_URL:-http://caddy/.well-known/mercure}
MERCURE_PUBLIC_URL: https://${ИМЯ_СЕРВЕРА:-localhost}/.well-known/mercure
MERCURE_JWT_SECRET: ${CADDY_MERCURE_JWT_SECRET:-!ChangeMe!}
Кэдди:
строить:
контекст: .
цель: app_caddy
аргументы:
CADDY_VERSION: ${CADDY_VERSION:-2}
зависит от:
- пхп
перезапуск: если не остановлен
тома:
- php_socket:/var/run/php
- caddy_data:/данные
- caddy_config:/config
порты:
# HTTP
- цель: 80
опубликовано: ${HTTP_PORT:-80}
протокол: TCP
# HTTPS
- цель: 443
опубликовано: ${HTTPS_PORT:-443}
протокол: TCP
# HTTP/3
- цель: 443
опубликовано: ${HTTP3_PORT:-443}
протокол: udp
среда:
SERVER_NAME: ${SERVER_NAME:-localhost, caddy:80}
MERCURE_PUBLISHER_JWT_KEY: ${CADDY_MERCURE_JWT_SECRET:-!ChangeMe!}
MERCURE_SUBSCRIBER_JWT_KEY: ${CADDY_MERCURE_JWT_SECRET:-!ChangeMe!}
тома:
php_socket:
db_socket:
caddy_data:
caddy_config:# См. https://github.com/docker/for-linux/issues/264
# `client_host` ниже можно при желании заменить на `discover_client_host=yes`
# Добавьте `start_with_request=yes` для запуска сеанса отладки при каждом запросе
XDEBUG_CONFIG: >-
client_host=host.docker.internal
XDEBUG_MODE: отладка
# Это должно соответствовать серверу, объявленному в PHPStorm `Preferences | Языки и платформы | PHP | Серверы`
# Затем PHPStorm будет использовать соответствующие сопоставления путей
PHP_IDE_CONFIG: serverName=symfony
# дополнительные_хосты:
# # Убедитесь, что host.docker.internal правильно определен в Linux
# - host.docker.internal: хост-шлюз
# Запустите «composer require symfony/mercure-bundle», чтобы установить и настроить интеграцию с Mercure.
# https://symfony.com/doc/current/mercure.html
MERCURE_URL: ${CADDY_MERCURE_URL:-http://caddy/.well-known/mercure}
MERCURE_PUBLIC_URL: https://${ИМЯ_СЕРВЕРА:-localhost}/.well-known/mercure
MERCURE_JWT_SECRET: ${CADDY_MERCURE_JWT_SECRET:-!ChangeMe!}
Кэдди:
строить:
контекст: .
цель: app_caddy
аргументы:
CADDY_VERSION: ${CADDY_VERSION:-2}
зависит от:
- пхп
перезапуск: если не остановлен
тома:
- php_socket:/var/run/php
- caddy_data:/данные
- caddy_config:/config
порты:
# HTTP
- цель: 80
опубликовано: ${HTTP_PORT:-80}
протокол: TCP
# HTTPS
- цель: 443
опубликовано: ${HTTPS_PORT:-443}
протокол: TCP
# HTTP/3
- цель: 443
опубликовано: ${HTTP3_PORT:-443}
протокол: udp
среда:
SERVER_NAME: ${SERVER_NAME:-localhost, caddy:80}
MERCURE_PUBLISHER_JWT_KEY: ${CADDY_MERCURE_JWT_SECRET:-!ChangeMe!}
MERCURE_SUBSCRIBER_JWT_KEY: ${CADDY_MERCURE_JWT_SECRET:-!ChangeMe!}
тома:
php_socket:
db_socket:
caddy_data:
caddy_config:# См. https://github.com/docker/for-linux/issues/264
# `client_host` ниже можно при желании заменить на `discover_client_host=yes`
# Добавьте `start_with_request=yes` для запуска сеанса отладки при каждом запросе
XDEBUG_CONFIG: >-
client_host=host.docker.internal
XDEBUG_MODE: отладка
# Это должно соответствовать серверу, объявленному в PHPStorm `Preferences | Языки и платформы | PHP | Серверы`
# Затем PHPStorm будет использовать соответствующие сопоставления путей
PHP_IDE_CONFIG: serverName=symfony
# дополнительные_хосты:
# # Убедитесь, что host.docker.internal правильно определен в Linux
# - host.docker.internal: хост-шлюз
# Запустите «composer require symfony/mercure-bundle», чтобы установить и настроить интеграцию с Mercure.
# https://symfony.com/doc/current/mercure.html
MERCURE_URL: ${CADDY_MERCURE_URL:-http://caddy/.well-known/mercure}
MERCURE_PUBLIC_URL: https://${ИМЯ_СЕРВЕРА:-localhost}/.well-known/mercure
MERCURE_JWT_SECRET: ${CADDY_MERCURE_JWT_SECRET:-!ChangeMe!}
Кэдди:
строить:
контекст: .
цель: app_caddy
аргументы:
CADDY_VERSION: ${CADDY_VERSION:-2}
зависит от:
- пхп
перезапуск: если не остановлен
тома:
- php_socket:/var/run/php
- caddy_data:/данные
- caddy_config:/config
порты:
# HTTP
- цель: 80
опубликовано: ${HTTP_PORT:-80}
протокол: TCP
# HTTPS
- цель: 443
опубликовано: ${HTTPS_PORT:-443}
протокол: TCP
# HTTP/3
- цель: 443
опубликовано: ${HTTP3_PORT:-443}
протокол: udp
среда:
SERVER_NAME: ${SERVER_NAME:-localhost, caddy:80}
MERCURE_PUBLISHER_JWT_KEY: ${CADDY_MERCURE_JWT_SECRET:-!ChangeMe!}

MERCURE_SUBSCRIBER_JWT_KEY: ${CADDY_MERCURE_JWT_SECRET:-!ChangeMe!}

тома:
php_socket:
db_socket:
caddy_data:
caddy_config:      # См. https://github.com/docker/for-linux/issues/264
      # `client_host` ниже можно при желании заменить на `discover_client_host=yes`
      # Добавьте `start_with_request=yes` для запуска сеанса отладки при каждом запросе
      XDEBUG_CONFIG: >-
        client_host=host.docker.internal
      XDEBUG_MODE: отладка
      # Это должно соответствовать серверу, объявленному в PHPStorm `Preferences | Языки и платформы | PHP | Серверы`
      # Затем PHPStorm будет использовать соответствующие сопоставления путей
      PHP_IDE_CONFIG: serverName=symfony
      # дополнительные_хосты:

# # Убедитесь, что host.docker.internal правильно определен в Linux # - host.docker.internal: хост-шлюз

флаг vn
https://docs.docker.com/engine/reference/builder/#scope «Инструкция ARG выходит за пределы области действия в конце этапа сборки, на котором она была определена. Чтобы использовать аргумент на нескольких этапах, каждый этап должен включать инструкцию ARG».
Raymond avatar
флаг co
Спасибо, я соответствующим образом просматриваю файл докеров.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.