-
Notifications
You must be signed in to change notification settings - Fork 5.8k
[BUG] --dry-run flag causes Compose commands to to fail on Synology with official Docker package #10766
Description
Description
When trying to run docker compose --dry-run up command I receive this error
$ sudo docker compose --dry-run up
invalid name , name needs to start with a letter and may not contain symbols, except ._-Same file works normally without --dry-run
$ sudo docker compose up
[+] Running 0/1
⠹ db Pulling The file
services:
db:
image: postgres
volumes:
- ./tmp/db:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: password
web:
build: .
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db
The important nuance is that I run docker on Synology NAS from the official Container Manager package, so it's either the fact that Docker version is older than it should be, or some fundamental incompatibility of --dry-run with Synology DSM
The plugin is installed from release binary from this repo
Steps To Reproduce
- Acquire Synology NAS and install "Docker"/"Container Manager" package, as well as the Compose plugin
- Create a valid docker-compose.yml
- Try to run
docker compose up, confirm that the file is valid - Try to run
docker compose --dry-run up, receive an error message
Compose Version
$ sudo docker compose version
Docker Compose version v2.19.1
Docker Environment
$ sudo docker info
Client:
Context: default
Debug Mode: false
Plugins:
compose: Docker Compose (Docker Inc., v2.19.1)
Server:
Containers: 5
Running: 4
Paused: 0
Stopped: 1
Images: 13
Server Version: 20.10.23
Storage Driver: btrfs
Build Version: Btrfs v4.0
Library Version: 101
Logging Driver: db
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs db fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: b23a389d8c181697302d163356e97dec04eb8d88
runc version: 5af893d
init version: ed96d00
Security Options:
apparmor
Kernel Version: 4.4.302+
Operating System: Synology NAS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 3.678GiB
Name: [REDACTED]
ID: [REDACTED]
Docker Root Dir: /volume1/@docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
WARNING: No kernel memory TCP limit support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support
WARNING: No blkio throttle.read_bps_device support
WARNING: No blkio throttle.write_bps_device support
WARNING: No blkio throttle.read_iops_device support
WARNING: No blkio throttle.write_iops_device support
Anything else?
The error message seems to come from here https://github.com/docker/buildx/blob/b84e0e11b4384d3f51e63fe71c4be7a9aad946df/store/util.go#L34
This appears very strange to me, especially considering that it works without dry-run, and I have no idea why this code path would fail. Even considering the uniqueness of my setup, I imagine that dry run would work mostly the same, right?
I haven't found this issue referenced anywhere on the Internet, so either my use case is rare, or the problem is in my setup somehow
Updating docker is not an option, since it comes from the official package. And since this error comes from the dependency, I can't see how it could help anyway