Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Environment variable interpolation not remove double quote in value when using environment config array #12418

Open
afifurrohman-id opened this issue Dec 21, 2024 · 0 comments

Comments

@afifurrohman-id
Copy link

afifurrohman-id commented Dec 21, 2024

Description

services:
  rdbms1:
    image: postgres:17.2-alpine
    environment:
     # THIS WORKS
      POSTGRES_USER: "${POSTGRES_USER:-foo}"
      POSTGRES_PASSWORD: "${POSTGRES_PASSWORD:-bar}"

  rdbms2:
    image: postgres:17.2-alpine
    environment:
      # THIS FAILS
      - POSTGRES_USER="${POSTGRES_USER:-foo}"
      - POSTGRES_PASSWORD="${POSTGRES_PASSWORD:-bar}"

when using environment config array like in service rdbms2 above, the double quote is not removed after parsing variable value, but when using environment config map doesn't happen

Steps To Reproduce

  1. Run:
docker compose -f - up <<EOF
services:
  rdbms1:
    image: postgres:17.2-alpine
    environment:
      POSTGRES_USER: "${POSTGRES_USER:-foo}"
      POSTGRES_PASSWORD: "${POSTGRES_PASSWORD:-bar}"

  rdbms2:
    image: postgres:17.2-alpine
    environment:
      - POSTGRES_USER="${POSTGRES_USER:-foo}"
      - POSTGRES_PASSWORD="${POSTGRES_PASSWORD:-bar}"


EOF
  1. You got:
rdbms2-1  | 2024-12-21 08:09:10.069 UTC [35] FATAL:  zero-length delimited identifier at or near """" at character 12
rdbms2-1  | 2024-12-21 08:09:10.069 UTC [35] STATEMENT:  ALTER USER ""foo"" WITH PASSWORD E'"bar"';
rdbms2-1  |
rdbms2-1  | child process exited with exit code 1

service 1 ok, but service 2 fail because the password value have double quote

Compose Version

Docker Compose version v2.31.0

Docker Environment

Client: Docker Engine - Community
 Version:    27.4.0
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.19.2
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.31.0
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 10
  Running: 9
  Paused: 0
  Stopped: 1
 Images: 47
 Server Version: 27.4.0
 Storage Driver: overlayfs
  driver-type: io.containerd.snapshotter.v1
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 88bf19b2105c8b17560993bee28a01ddc2f97182
 runc version: v1.2.2-0-g7cb3632
 init version: de40ad0
 Security Options:
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 5.15.153.1-microsoft-standard-WSL2
 Operating System: Debian GNU/Linux 12 (bookworm)
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 5.792GiB
 Name: foo-laptop
 ID: b2b48662-aae9-415d-ad86-52e27957892a
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

Anything else?

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant