Skip to content

Symfony does not pick up docker containers with custom ports as env vars #504

@ghost

Description

Hi there

After the release of 5.10.1 the cli does not pick up external defined containers and exposes the ports as env variables if they expose on a "non-traditional" port.

As an example take following compose.yml file:

services:
  notworking:
    image: nginx
    environment:
      - TEST=XYZ
    ports: [ "3000" ]
  working:
    image: nginx
    environment:
      - TEST=XYZ
    ports: [ "80" ]

After you start the container, list the exposed variables with symfony var:export --multiline

Symfony CLI Version 5.9.1:

$ /home/vscode/.symfony5/bin/symfony -V
Symfony CLI version 5.9.1 (c) 2021-2024 Fabien Potencier (2024-06-04T14:01:31Z - stable)
$ /home/vscode/.symfony5/bin/symfony var:export --multiline
export NOTWORKING_HOST=127.0.0.1
export NOTWORKING_IP=127.0.0.1
export NOTWORKING_PORT=32808
export SYMFONY_APPLICATION_DEFAULT_ROUTE_HOST=127.0.0.1:8000
export SYMFONY_APPLICATION_DEFAULT_ROUTE_PATH=/
export SYMFONY_APPLICATION_DEFAULT_ROUTE_PORT=8000
export SYMFONY_APPLICATION_DEFAULT_ROUTE_SCHEME=http
export SYMFONY_APPLICATION_DEFAULT_ROUTE_URL=http://127.0.0.1:8000/
export SYMFONY_DEFAULT_ROUTE_HOST=127.0.0.1:8000
export SYMFONY_DEFAULT_ROUTE_PATH=/
export SYMFONY_DEFAULT_ROUTE_PORT=8000
export SYMFONY_DEFAULT_ROUTE_SCHEME=http
export SYMFONY_DEFAULT_ROUTE_URL=http://127.0.0.1:8000/
export SYMFONY_DOCKER_ENV=1
export SYMFONY_PROJECT_DEFAULT_ROUTE_HOST=127.0.0.1:8000
export SYMFONY_PROJECT_DEFAULT_ROUTE_PATH=/
export SYMFONY_PROJECT_DEFAULT_ROUTE_PORT=8000
export SYMFONY_PROJECT_DEFAULT_ROUTE_SCHEME=http
export SYMFONY_PROJECT_DEFAULT_ROUTE_URL=http://127.0.0.1:8000/
export SYMFONY_TUNNEL=
export SYMFONY_TUNNEL_BRAND=
export SYMFONY_TUNNEL_ENV=
export WORKING_HOST=127.0.0.1
export WORKING_IP=127.0.0.1
export WORKING_PORT=32807
export WORKING_SCHEME=http
export WORKING_SERVER=http://127.0.0.1:32807
export WORKING_URL=http://127.0.0.1:32807

Symfony CLI Version 5.10.1:

$ symfony -V
Symfony CLI version 5.10.1 (c) 2021-2024 Fabien Potencier (2024-07-19T08:05:20Z - stable)
$ symfony var:export --multiline
export SYMFONY_APPLICATION_DEFAULT_ROUTE_HOST=127.0.0.1:8000
export SYMFONY_APPLICATION_DEFAULT_ROUTE_PATH=/
export SYMFONY_APPLICATION_DEFAULT_ROUTE_PORT=8000
export SYMFONY_APPLICATION_DEFAULT_ROUTE_SCHEME=http
export SYMFONY_APPLICATION_DEFAULT_ROUTE_URL=http://127.0.0.1:8000/
export SYMFONY_DEFAULT_ROUTE_HOST=127.0.0.1:8000
export SYMFONY_DEFAULT_ROUTE_PATH=/
export SYMFONY_DEFAULT_ROUTE_PORT=8000
export SYMFONY_DEFAULT_ROUTE_SCHEME=http
export SYMFONY_DEFAULT_ROUTE_URL=http://127.0.0.1:8000/
export SYMFONY_DOCKER_ENV=1
export SYMFONY_PROJECT_DEFAULT_ROUTE_HOST=127.0.0.1:8000
export SYMFONY_PROJECT_DEFAULT_ROUTE_PATH=/
export SYMFONY_PROJECT_DEFAULT_ROUTE_PORT=8000
export SYMFONY_PROJECT_DEFAULT_ROUTE_SCHEME=http
export SYMFONY_PROJECT_DEFAULT_ROUTE_URL=http://127.0.0.1:8000/
export SYMFONY_TUNNEL=
export SYMFONY_TUNNEL_BRAND=
export SYMFONY_TUNNEL_ENV=
export WORKING_HOST=127.0.0.1
export WORKING_IP=127.0.0.1
export WORKING_PORT=32807
export WORKING_SCHEME=http
export WORKING_SERVER=http://127.0.0.1:32807
export WORKING_URL=http://127.0.0.1:32807

As you can see, the "NOTWORKING" informations are not longer exposed as env variables.

Following is the output of symfony var:export --debug:

$ symfony var:export --debug
found Docker container "notworking" for project "temp" (image "nginx")
  port 32808 for private port 3000
  port 32808 for private port 3000
  env  TEST=XYZ
  env  PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  env  NGINX_VERSION=1.27.0
  env  NJS_VERSION=0.8.4
  env  NJS_RELEASE=2~bookworm
  env  PKG_RELEASE=2~bookworm
  exposing port
found Docker container "working" for project "temp" (image "nginx")
  port 32807 for private port 80
  port 32807 for private port 80
  env  TEST=XYZ
  env  PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  env  NGINX_VERSION=1.27.0
  env  NJS_VERSION=0.8.4
  env  NJS_RELEASE=2~bookworm
  env  PKG_RELEASE=2~bookworm
  exposing port
  exposing service "working"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      pFad - Phonifier reborn

      Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

      Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


      Alternative Proxies:

      Alternative Proxy

      pFad Proxy

      pFad v3 Proxy

      pFad v4 Proxy