dokku/dokku

End phase of deploy: Unable to rename container

jnstq opened this issue · 18 comments

Description of problem

I have zero downtime deploy enabled on myapp, in the end phase it fails to rename the upcoming to web.

-----> Configuring myapp.example.com...(using built-in template)
-----> Creating https nginx.conf
       Enabling HSTS
       Reloading nginx
-----> Renaming containers
       Found previous container(s) (ed3e2676e06d) named myapp.web.1
       Renaming container (ed3e2676e06d) myapp.web.1 to myapp.web.1.1705941134
remote:  !     Unable to rename container
       Renaming container myapp.web.1.upcoming-12111 (4061186ae1dd) to myapp.web.1
remote: Error response from daemon: Error when allocating new name: Conflict. The container name "/myapp.web.1" is already in use by container "ed3e2676e06d5c71c399fb0e99a3632465330873e0be8c8bee3a46967539b446". You have to remove (or rename) that container to be able to reuse that name.
remote: Error: failed to rename container named 4061186ae1ddf1e726b65ed2177e99acf018675ec49537b249b6b32f0e511aa9
remote:  !     Failed to rename container myapp.web.1.upcoming-12111 (4061186ae1dd)
=====> Start myapp (4061186ae1dd) container output:
=====> End myapp (4061186ae1dd) container output

Steps to reproduce

For me this happens during every deploy.

dokku report $APP_NAME

-----> uname: Linux white-dwarf 5.15.0-91-generic #101-Ubuntu SMP Tue Nov 14 13:30:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
-----> memory: 
                      total        used        free      shared  buff/cache   available
       Mem:          192057        6679      171951           3       13426      183953
       Swap:           8191           0        8191
-----> docker version: 
       Client: Docker Engine - Community
        Version:           25.0.0
        API version:       1.44
        Go version:        go1.21.6
        Git commit:        e758fe5
        Built:             Thu Jan 18 17:09:49 2024
        OS/Arch:           linux/amd64
        Context:           default
       
       Server: Docker Engine - Community
        Engine:
         Version:          25.0.0
         API version:      1.44 (minimum version 1.24)
         Go version:       go1.21.6
         Git commit:       615dfdf
         Built:            Thu Jan 18 17:09:49 2024
         OS/Arch:          linux/amd64
         Experimental:     false
        containerd:
         Version:          1.6.27
         GitCommit:        a1496014c916f9e62104b33d1bb5bd03b0858e59
        runc:
         Version:          1.1.11
         GitCommit:        v1.1.11-0-g4bccb38
        docker-init:
         Version:          0.19.0
         GitCommit:        de40ad0
-----> docker daemon info: 
       Client: Docker Engine - Community
        Version:    25.0.0
        Context:    default
        Debug Mode: true
        Plugins:
         buildx: Docker Buildx (Docker Inc.)
           Version:  v0.12.1
           Path:     /usr/libexec/docker/cli-plugins/docker-buildx
         compose: Docker Compose (Docker Inc.)
           Version:  v2.24.1
           Path:     /usr/libexec/docker/cli-plugins/docker-compose
       
       Server:
        Containers: 3
         Running: 3
         Paused: 0
         Stopped: 0
        Images: 14
        Server Version: 25.0.0
        Storage Driver: overlay2
         Backing Filesystem: extfs
         Supports d_type: true
         Using metacopy: false
         Native Overlay Diff: true
         userxattr: false
        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: a1496014c916f9e62104b33d1bb5bd03b0858e59
        runc version: v1.1.11-0-g4bccb38
        init version: de40ad0
        Security Options:
         apparmor
         seccomp
          Profile: builtin
         cgroupns
        Kernel Version: 5.15.0-91-generic
        Operating System: Ubuntu 22.04.3 LTS
        OSType: linux
        Architecture: x86_64
        CPUs: 56
        Total Memory: 187.6GiB
        Name: white-dwarf
        ID: fb490d0f-01de-4604-b05f-355fc6e3f866
        Docker Root Dir: /var/lib/docker
        Debug Mode: false
         File Descriptors: 48
         Goroutines: 70
         System Time: 2024-01-22T16:42:00.148608401Z
         EventsListeners: 2
        Experimental: false
        Insecure Registries:
         127.0.0.0/8
        Live Restore Enabled: false
       
-----> herokuish version: 
       herokuish: v0.7.2
       buildpacks:
         heroku-buildpack-multi     v1.2.0
         heroku-buildpack-ruby      v259
         heroku-buildpack-nodejs    v224
         heroku-buildpack-clojure   v91
         heroku-buildpack-python    v237
         heroku-buildpack-java      v73
         heroku-buildpack-gradle    v39
         heroku-buildpack-scala     v96
         heroku-buildpack-play      v26
         heroku-buildpack-php       v239
         heroku-buildpack-go        v181
         heroku-buildpack-nginx     v24
         buildpack-null             v3
-----> dokku version: dokku version 0.32.4
-----> dokku-event-listener version: 0.15.0build+5268732                                                             
-----> dokku-update version: dokku-update 0.7.2
-----> docker-container-healthchecker version: 0.7.2                                                                           
-----> docker-image-labeler version: 0.6.1build+c6e15a9                                                              
-----> git version: git version 2.34.1
-----> lambda-builder version:        0.5.0                                                                           
-----> netrc version: 0.7.1build+677c033
-----> plugn version: plugn: 0.13.0build+fd5297a
-----> sigil version: 0.10.1build+e443be0
-----> sshcommand version: sshcommand 0.17.1
-----> dokku plugins: 
         00_dokku-standard    0.32.4 enabled    dokku core standard plugin
         20_events            0.32.4 enabled    dokku core events logging plugin
         app-json             0.32.4 enabled    dokku core app-json plugin
         apps                 0.32.4 enabled    dokku core apps plugin
         builder              0.32.4 enabled    dokku core builder plugin
         builder-dockerfile   0.32.4 enabled    dokku core builder-dockerfile plugin
         builder-herokuish    0.32.4 enabled    dokku core builder-herokuish plugin
         builder-lambda       0.32.4 enabled    dokku core builder-lambda plugin
         builder-nixpacks     0.32.4 enabled    dokku core builder-nixpacks plugin
         builder-null         0.32.4 enabled    dokku core builder-null plugin
         builder-pack         0.32.4 enabled    dokku core builder-pack plugin
         buildpacks           0.32.4 enabled    dokku core buildpacks plugin
         caddy-vhosts         0.32.4 enabled    dokku core caddy-vhosts plugin
         certs                0.32.4 enabled    dokku core certificate management plugin
         checks               0.32.4 enabled    dokku core checks plugin
         common               0.32.4 enabled    dokku core common plugin
         config               0.32.4 enabled    dokku core config plugin
         cron                 0.32.4 enabled    dokku core cron plugin
         docker-options       0.32.4 enabled    dokku core docker-options plugin
         domains              0.32.4 enabled    dokku core domains plugin
         enter                0.32.4 enabled    dokku core enter plugin
         git                  0.32.4 enabled    dokku core git plugin
         haproxy-vhosts       0.32.4 enabled    dokku core haproxy-vhosts plugin
         letsencrypt          0.20.3 enabled    Automated installation of let's encrypt TLS certificates
         logs                 0.32.4 enabled    dokku core logs plugin
         memcached            1.35.2 enabled    dokku memcached service plugin
         mysql                1.37.1 enabled    dokku mysql service plugin
         network              0.32.4 enabled    dokku core network plugin
         nginx-vhosts         0.32.4 enabled    dokku core nginx-vhosts plugin
         openresty-vhosts     0.32.4 enabled    dokku core openresty-vhosts plugin
         plugin               0.32.4 enabled    dokku core plugin plugin
         ports                0.32.4 enabled    dokku core ports plugin
         proxy                0.32.4 enabled    dokku core proxy plugin
         ps                   0.32.4 enabled    dokku core ps plugin
         registry             0.32.4 enabled    dokku core registry plugin
         repo                 0.32.4 enabled    dokku core repo plugin
         resource             0.32.4 enabled    dokku core resource plugin
         run                  0.32.4 enabled    dokku core run plugin
         scheduler            0.32.4 enabled    dokku core scheduler plugin
         scheduler-docker-local 0.32.4 enabled    dokku core scheduler-docker-local plugin
         scheduler-null       0.32.4 enabled    dokku core scheduler-null plugin
         shell                0.32.4 enabled    dokku core shell plugin
         ssh-keys             0.32.4 enabled    dokku core ssh-keys plugin
         storage              0.32.4 enabled    dokku core storage plugin
         trace                0.32.4 enabled    dokku core trace plugin
         traefik-vhosts       0.32.4 enabled    dokku core traefik-vhosts plugin
=====> myapp app-json information
       App json computed selected:    app.json
       App json global selected:      app.json
       App json selected:             
=====> myapp app information
       App created at:                1705664011
       App deploy source:             git-push
       App deploy source metadata:    1f79ef8f3e47123f4c6b1c0b39663a46e520baa6
       App dir:                       /home/dokku/myapp
       App locked:                    false
=====> myapp builder information
       Builder build dir:             
       Builder computed build dir:    
       Builder computed selected:     
       Builder global build dir:      
       Builder global selected:       
       Builder selected:              
=====> myapp builder-dockerfile information
       Builder dockerfile computed dockerfile path: Dockerfile               
       Builder dockerfile global dockerfile path: Dockerfile               
       Builder dockerfile dockerfile path:                          
=====> myapp builder-herokuish information
       Builder herokuish computed allowed: true                     
       Builder herokuish global allowed: true                     
       Builder herokuish allowed:                              
=====> myapp builder-lambda information
       Builder lambda computed lambdayml path: lambda.yml               
       Builder lambda global lambdayml path: lambda.yml               
       Builder lambda lambdayml path:                          
=====> myapp builder-nixpacks information
       Builder nixpacks computed nixpackstoml path: nixpacks.toml            
       Builder nixpacks global nixpackstoml path: nixpacks.toml            
       Builder nixpacks nixpackstoml path:                          
       Builder nixpacks computed no cache: false                    
       Builder nixpacks global no cache: false                    
       Builder nixpacks no cache:                              
=====> myapp builder-pack information
       Builder pack computed projecttoml path: project.toml             
       Builder pack global projecttoml path: project.toml             
       Builder pack projecttoml path:                          
=====> myapp buildpacks information
       Buildpacks computed stack:     gliderlabs/herokuish:latest-20
       Buildpacks global stack:       
       Buildpacks list:               
       Buildpacks stack:              gliderlabs/herokuish:latest-20
=====> myapp caddy information
       Caddy image:                   lucaslorentz/caddy-docker-proxy:2.8
       Caddy letsencrypt email:                                
       Caddy letsencrypt server:      https://acme-v02.api.letsencrypt.org/directory
       Caddy log level:               ERROR                    
       Caddy polling interval:        5s                       
       Caddy tls internal:            false                    
=====> myapp ssl information
       Ssl dir:                       /home/dokku/myapp/tls      
       Ssl enabled:                   true                     
       Ssl hostnames:                 myapp.example.com     
       Ssl expires at:                Apr 18 16:39:57 2024 GMT 
       Ssl issuer:                    C = US, O = Let's Encrypt, CN = R3
       Ssl starts at:                 Jan 19 16:39:58 2024 GMT 
       Ssl subject:                   subject=CN = myapp.example.com
       Ssl verified:                  self signed              
=====> myapp checks information
       Checks disabled list:          none                     
       Checks skipped list:           none                     
       Checks computed wait to retire: 60                       
       Checks global wait to retire:  60                       
       Checks wait to retire:                                  
=====> myapp docker options information
       Docker options build:          --link dokku.memcached.myapp-production:dokku-memcached-myapp-production --link dokku.mysql.myapp-production:dokku-mysql-myapp-production 
       Docker options deploy:         --link dokku.memcached.myapp-production:dokku-memcached-myapp-production --link dokku.mysql.myapp-production:dokku-mysql-myapp-production --restart=on-failure:10 
       Docker options run:            --link dokku.memcached.myapp-production:dokku-memcached-myapp-production --link dokku.mysql.myapp-production:dokku-mysql-myapp-production 
=====> myapp domains information
       Domains app enabled:           true                     
       Domains app vhosts:            myapp.example.com     
       Domains global enabled:        true                     
       Domains global vhosts:         server.example.com
=====> myapp git information
       Git deploy branch:             master                   
       Git global deploy branch:      master                   
       Git keep git dir:              false                    
       Git rev env var:               GIT_REV                  
       Git sha:                       1f79ef8f3                
       Git source image:                                       
       Git last updated at:           1705941135               
=====> myapp haproxy information
       Haproxy image:                 byjg/easy-haproxy:4.3.0  
       Haproxy letsencrypt email:                              
       Haproxy letsencrypt server:    https://acme-v02.api.letsencrypt.org/directory
       Haproxy log level:             ERROR                    
=====> myapp letsencrypt information
       Letsencrypt active:            true                     
       Letsencrypt autorenew:         true                     
       Letsencrypt computed dns provider:                          
       Letsencrypt global dns provider:                          
       Letsencrypt dns provider:                               
       Letsencrypt computed email:    admin@example.com   
       Letsencrypt global email:      admin@example.com   
       Letsencrypt email:                                      
       Letsencrypt expiration:        1713458397               
       Letsencrypt computed graceperiod: 2592000                  
       Letsencrypt global graceperiod:                          
       Letsencrypt graceperiod:                                
       Letsencrypt computed lego docker args:                          
       Letsencrypt global lego docker args:                          
       Letsencrypt lego docker args:                           
       Letsencrypt computed server:   https://acme-v02.api.letsencrypt.org/directory
       Letsencrypt global server:                              
       Letsencrypt server:                                     
=====> myapp logs information
       Logs computed max size:        10m
       Logs global max size:          10m
       Logs global vector sink:       
       Logs max size:                 
       Logs vector sink:              
=====> myapp network information
       Network attach post create:           
       Network attach post deploy:           
       Network bind all interfaces:          false
       Network computed attach post create:  
       Network computed attach post deploy:  
       Network computed bind all interfaces: false
       Network computed initial network:     
       Network computed tld:                 
       Network global attach post create:    
       Network global attach post deploy:    
       Network global bind all interfaces:   false
       Network global initial network:       
       Network global tld:                   
       Network initial network:              
       Network static web listener:          
       Network tld:                          
       Network web listeners:                172.17.0.5:5000
=====> myapp nginx information
       Nginx access log format:                                
       Nginx access log path:         /var/log/nginx/myapp-access.log
       Nginx bind address ipv4:                                
       Nginx bind address ipv6:       ::                       
       Nginx client max body size:                             
       Nginx disable custom config:   false                    
       Nginx error log path:          /var/log/nginx/myapp-error.log
       Nginx global hsts:             true                     
       Nginx computed hsts:           true                     
       Nginx hsts:                                             
       Nginx hsts include subdomains: true                     
       Nginx hsts max age:            15724800                 
       Nginx hsts preload:            false                    
       Nginx computed nginx conf sigil path: nginx.conf.sigil         
       Nginx global nginx conf sigil path: nginx.conf.sigil         
       Nginx nginx conf sigil path:                            
       Nginx proxy buffer size:       4096                     
       Nginx proxy buffering:         on                       
       Nginx proxy buffers:           8 4096                   
       Nginx proxy busy buffers size: 8192                     
       Nginx proxy read timeout:      60s                      
       Nginx last visited at:         1705940449               
       Nginx x forwarded for value:   $remote_addr             
       Nginx x forwarded port value:  $server_port             
       Nginx x forwarded proto value: $scheme                  
       Nginx x forwarded ssl:                                  
=====> myapp openresty information
       Openresty access log format:                            
       Openresty access log path:     /var/log/nginx/myapp-access.log
       Openresty bind address ipv4:                            
       Openresty bind address ipv6:   ::                       
       Openresty client max body size:                          
       Openresty error log path:      /var/log/nginx/myapp-error.log
       Openresty global hsts:         true                     
       Openresty computed hsts:       true                     
       Openresty hsts:                                         
       Openresty hsts include subdomains: true                     
       Openresty hsts max age:        15724800                 
       Openresty hsts preload:        false                    
       Openresty image:               dokku/openresty-docker-proxy:0.6.0
       Openresty letsencrypt email:                            
       Openresty letsencrypt server:  https://acme-v02.api.letsencrypt.org/directory
       Openresty proxy buffer size:   4096                     
       Openresty proxy buffering:     on                       
       Openresty proxy buffers:       8 4096                   
       Openresty proxy busy buffers size: 8192                     
       Openresty proxy read timeout:  60s                      
       Openresty x forwarded for value: $remote_addr             
       Openresty x forwarded port value: $server_port             
       Openresty x forwarded proto value: $scheme                  
       Openresty x forwarded ssl:                              
=====> myapp ports information
       Ports map:                     
       Ports map detected:            http:80:5000 https:443:5000
=====> myapp proxy information
       Proxy enabled:                 true
       Proxy type:                    nginx
=====> myapp ps information
       Deployed:                      true
       Processes:                     1
       Ps can scale:                  true
       Ps computed procfile path:     Procfile
       Ps global procfile path:       Procfile
       Ps procfile path:              
       Ps restart policy:             on-failure:10
       Restore:                       true
       Running:                       true
       Status web 1:                  running (CID: 4061186ae1d)
=====> myapp registry information
       Registry computed image repo:      dokku/myapp
       Registry computed push on release: false
       Registry computed server:          
       Registry global push on release:   
       Registry global server:            
       Registry image repo:               
       Registry push on release:          
       Registry server:                   
       Registry tag version:              
=====> myapp resource information
=====> myapp scheduler information
       Scheduler computed selected:   docker-local
       Scheduler global selected:     docker-local
       Scheduler selected:            
=====> myapp scheduler-docker-local information
       Scheduler docker local disable chown:                          
       Scheduler docker local init process: true                     
       Scheduler docker local parallel schedule count:                          
=====> myapp storage information
       Storage build mounts:                                   
       Storage deploy mounts:                                  
       Storage run mounts:                                     
=====> myapp traefik information
       Traefik api enabled:           false                    
       Traefik api vhost:             traefik.dokku.me         
       Traefik basic auth password:                            
       Traefik basic auth username:                            
       Traefik dashboard enabled:     false                    
       Traefik image:                 traefik:v2.10            
       Traefik letsencrypt email:                              
       Traefik letsencrypt server:    https://acme-v02.api.letsencrypt.org/directory
       Traefik log level:             ERROR                    
       Traefik priority:                                       

Additional information

[
    {
        "AppArmorProfile": "docker-default",
        "Args": [
            "web"
        ],
        "Config": {
            "AttachStderr": true,
            "AttachStdin": false,
            "AttachStdout": true,
            "Cmd": [
                "/start",
                "web"
            ],
            "Domainname": "",
            "Entrypoint": null,
            "Env": [
                "CURL_TIMEOUT=XXXXXX",
                "TZ=XXXXXX",
                "USER=herokuishuser",
                "DYNO=web.1",
                "MEMCACHED_URL=XXXXXX",
                "DOKKU_PROXY_SSL_PORT=443",
                "MEMCACHE_SERVERS=XXXXXX",
                "RAILS_SERVE_STATIC_FILES=XXXXXX",
                "SCOUT_MONITOR=XXXXXX",
                "DATABASE_URL=XXXXXX",
                "DOKKU_PROXY_PORT=80",
                "RAILS_ENV=XXXXXX",
                "RAILS_MASTER_KEY=XXXXXX",
                "WEB_CONCURRENCY=XXXXXX",
                "PORT=5000",
                "CURL_CONNECT_TIMEOUT=XXXXXX",
                "GIT_REV=XXXXXX",
                "DOKKU_APP_TYPE=herokuish",
                "RAILS_LOG_TO_STDOUT=XXXXXX",
                "SCOUT_NAME=XXXXXX",
                "DOKKU_APP_RESTORE=1",
                "RAILS_LOG_LEVEL=XXXXXX",
                "MYSQL_DATABASE_SCHEME=XXXXXX",
                "RAILS_MAX_THREADS=XXXXXX",
                "SCOUT_KEY=XXXXXX",
                "BUNDLE_RUBYGEMS__PKG__GITHUB__COM=XXXXXX",
                "CACHE_PATH=/cache",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "STACK=XXXXXX",
                "DEBIAN_FRONTEND=XXXXXX"
            ],
            "Hostname": "4061186ae1dd",
            "Image": "dokku/myapp:latest",
            "Labels": {
                "com.dokku.app-name": "myapp",
                "com.dokku.builder-type": "herokuish",
                "com.dokku.container-type": "deploy",
                "com.dokku.dyno": "web.1",
                "com.dokku.image-stage": "release",
                "com.dokku.process-type": "web",
                "com.gliderlabs.herokuish/stack": "heroku-20",
                "dokku": "",
                "openresty.access-log-path": "/var/log/nginx/myapp-access.log",
                "openresty.bind-address-ipv6": "::",
                "openresty.domains": "myapp.example.com",
                "openresty.error-log-path": "/var/log/nginx/myapp-error.log",
                "openresty.hsts": "true",
                "openresty.hsts-include-subdomains": "true",
                "openresty.hsts-max-age": "15724800",
                "openresty.hsts-preload": "false",
                "openresty.https-port": "443",
                "openresty.letsencrypt": "false",
                "openresty.port-mapping": "http:80:5000 https:443:5000",
                "openresty.proxy-buffer-size": "4096",
                "openresty.proxy-buffering": "on",
                "openresty.proxy-buffers": "8 4096",
                "openresty.proxy-busy-buffer-size": "8192",
                "openresty.proxy-connect-timeout": "60s",
                "openresty.proxy-read-timeout": "60s",
                "openresty.proxy-send-timeout": "60s",
                "openresty.send-timeout": "60s",
                "openresty.x-forwarded-for-value": "$remote_addr",
                "openresty.x-forwarded-port-value": "$server_port",
                "openresty.x-forwarded-proto-value": "$scheme",
                "org.label-schema.schema-version": "1.0",
                "org.label-schema.vendor": "dokku",
                "org.opencontainers.image.ref.name": "ubuntu",
                "org.opencontainers.image.version": "20.04"
            },
            "OnBuild": null,
            "OpenStdin": false,
            "StdinOnce": false,
            "Tty": false,
            "User": "",
            "Volumes": null,
            "WorkingDir": ""
        },
        "Created": "2024-01-22T16:32:02.872848576Z",
        "Driver": "overlay2",
        "ExecIDs": null,
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/c007278e8e9c171958428504c445ef32f3058e306361b676a97ee762902ccaa5-init/diff:/var/lib/docker/overlay2/i2pib5o6aq0ifdejn8hzno9jh/diff:/var/lib/docker/overlay2/ed86de10f19c665466029cea8c869082c6e092c9050c191959cbfd184cfe7cdb/diff:/var/lib/docker/overlay2/nai20n229qtrrny2bb9i5f93k/diff:/var/lib/docker/overlay2/k9nlzv9lqicby6feuvuqvn0cw/diff:/var/lib/docker/overlay2/edd0d6ff99faa7f9905f2fc14b6c4fbad870fac21b862c289e8ab5c6f03e6326/diff:/var/lib/docker/overlay2/171182f77a1ebdb35c3640b8560be2da54388e876990db9e8aec716005fe09c5/diff:/var/lib/docker/overlay2/0b5a1e318fd05a505a3044857b14dee203fd7257a72faecb08d3093a1b17ef69/diff:/var/lib/docker/overlay2/d6d4319c5fe09c0fbd1b5fbb5ab92d56e75c835ef0a55f0acd6760818a6f33ed/diff:/var/lib/docker/overlay2/e68308ca3101030146737fb32a8360448a71347c7ebb19af9310c64451207762/diff:/var/lib/docker/overlay2/a603ae647462b3e5a47075eea04ac8568594386459072d8bcb039cb4e9e39161/diff:/var/lib/docker/overlay2/18de2e270cd9ec34709b14ad012562c064d32eb08d46a20034d69caadedbd419/diff:/var/lib/docker/overlay2/34413e4d3df3737d14eb15d89033e2428702633b872073a83a16db7e35c1924f/diff:/var/lib/docker/overlay2/e67e26398f233e41e962f9ea7894dcaf7e39c6d7b9153d82cada343e05854dac/diff:/var/lib/docker/overlay2/f852755dc10c2bed5d38cead6563e998e9ce88a47a44e78b34b212c18777e32c/diff:/var/lib/docker/overlay2/51a3d31b0431d265b962fe2e364c2050f464d555a4ee511314ee0d8ec762ef47/diff",
                "MergedDir": "/var/lib/docker/overlay2/c007278e8e9c171958428504c445ef32f3058e306361b676a97ee762902ccaa5/merged",
                "UpperDir": "/var/lib/docker/overlay2/c007278e8e9c171958428504c445ef32f3058e306361b676a97ee762902ccaa5/diff",
                "WorkDir": "/var/lib/docker/overlay2/c007278e8e9c171958428504c445ef32f3058e306361b676a97ee762902ccaa5/work"
            },
            "Name": "overlay2"
        },
        "HostConfig": {
            "AutoRemove": false,
            "Binds": null,
            "BlkioDeviceReadBps": [],
            "BlkioDeviceReadIOps": [],
            "BlkioDeviceWriteBps": [],
            "BlkioDeviceWriteIOps": [],
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "CapAdd": null,
            "CapDrop": null,
            "Cgroup": "",
            "CgroupParent": "",
            "CgroupnsMode": "private",
            "ConsoleSize": [
                0,
                0
            ],
            "ContainerIDFile": "",
            "CpuCount": 0,
            "CpuPercent": 0,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpuShares": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "Devices": [],
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IOMaximumBandwidth": 0,
            "IOMaximumIOps": 0,
            "Init": true,
            "IpcMode": "private",
            "Isolation": "",
            "Links": [
                "/dokku.memcached.myapp-production:/myapp.web.1.upcoming-12111/dokku-memcached-myapp-production",
                "/dokku.mysql.myapp-production:/myapp.web.1.upcoming-12111/dokku-mysql-myapp-production"
            ],
            "LogConfig": {
                "Config": {
                    "max-size": "10m"
                },
                "Type": "json-file"
            },
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware",
                "/sys/devices/virtual/powercap"
            ],
            "Memory": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "NanoCpus": 0,
            "NetworkMode": "default",
            "OomKillDisable": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "PidsLimit": null,
            "PortBindings": {},
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ],
            "ReadonlyRootfs": false,
            "RestartPolicy": {
                "MaximumRetryCount": 10,
                "Name": "on-failure"
            },
            "Runtime": "runc",
            "SecurityOpt": null,
            "ShmSize": 67108864,
            "UTSMode": "",
            "Ulimits": [],
            "UsernsMode": "",
            "VolumeDriver": "",
            "VolumesFrom": null
        },
        "HostnamePath": "/var/lib/docker/containers/4061186ae1ddf1e726b65ed2177e99acf018675ec49537b249b6b32f0e511aa9/hostname",
        "HostsPath": "/var/lib/docker/containers/4061186ae1ddf1e726b65ed2177e99acf018675ec49537b249b6b32f0e511aa9/hosts",
        "Id": "4061186ae1ddf1e726b65ed2177e99acf018675ec49537b249b6b32f0e511aa9",
        "Image": "sha256:6c97908f59e3ab2cf634e9a8d4de9411ee5d583de1618c37513ddd3ff8119269",
        "LogPath": "/var/lib/docker/containers/4061186ae1ddf1e726b65ed2177e99acf018675ec49537b249b6b32f0e511aa9/4061186ae1ddf1e726b65ed2177e99acf018675ec49537b249b6b32f0e511aa9-json.log",
        "MountLabel": "",
        "Mounts": [],
        "Name": "/myapp.web.1.upcoming-12111",
        "NetworkSettings": {
            "Bridge": "",
            "EndpointID": "957e70565f02e01af681668918bcacf4ef3c89f05ac92d3e3449250122852b1f",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "HairpinMode": false,
            "IPAddress": "172.17.0.5",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "MacAddress": "02:42:ac:11:00:05",
            "Networks": {
                "bridge": {
                    "Aliases": [
                        "4061186ae1dd"
                    ],
                    "DNSNames": null,
                    "DriverOpts": null,
                    "EndpointID": "957e70565f02e01af681668918bcacf4ef3c89f05ac92d3e3449250122852b1f",
                    "Gateway": "172.17.0.1",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "IPAMConfig": null,
                    "IPAddress": "172.17.0.5",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "Links": null,
                    "MacAddress": "02:42:ac:11:00:05",
                    "NetworkID": "f913a7b25ad694ba3b5b981bc6324fc5d21a83f777d4e0cdd2e431e0e3eb0991"
                }
            },
            "Ports": {},
            "SandboxID": "e52937469b4cfba98fb91cfac988846e20a98aa223b314cfc3a1311d3568fd38",
            "SandboxKey": "/var/run/docker/netns/e52937469b4c",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null
        },
        "Path": "/start",
        "Platform": "linux",
        "ProcessLabel": "",
        "ResolvConfPath": "/var/lib/docker/containers/4061186ae1ddf1e726b65ed2177e99acf018675ec49537b249b6b32f0e511aa9/resolv.conf",
        "RestartCount": 0,
        "State": {
            "Dead": false,
            "Error": "",
            "ExitCode": 0,
            "FinishedAt": "0001-01-01T00:00:00Z",
            "OOMKilled": false,
            "Paused": false,
            "Pid": 674601,
            "Restarting": false,
            "Running": true,
            "StartedAt": "2024-01-22T16:32:03.155432952Z",
            "Status": "running"
        }
    }
]

app.json

{
  "healthchecks": {
    "web": [
      {
        "type": "startup",
        "name": "web check",
        "description": "Checking if the app responds to the /login endpoint",
        "path": "/login",
        "attempts": 3
      }
    ]
  }
}

Procfile

web: bundle exec puma -C config/puma.rb
release: bundle exec rails db:migrate

Output of failing commands after running: dokku trace:off

No response

Output of failing commands after running: dokku trace:on

No response

Can you show the entire deploy output, as well as the log output of the container with the name myapp.web.1? I suspect that container is restarting or something and as such we're not able to rename it. We can probably guard against that somehow, but I'd need to see what the container state is to figure out whats going on.

fwg commented

This happens for me as well, even for a simple test project. To get more info on what the issue is, I removed the output redirect to /dev/null for the container rename operation.

The result:

       Renaming container (990fc52efa04) test-app.web.1 to test-app.web.1.1706005986
remote: Error response from daemon: Unable to complete atomic operation, key modified
remote: Error: failed to rename container named test-app.web.1
remote:  !     Unable to rename container

Searching for the error message lead to some issues in https://github.com/moby/moby/ suggesting a service docker restart might fix it, but no luck.

(Running dokku 0.32.4 on a fresh debian bookworm, with docker-ce 25.0.0)

@fwg can you provide the information I asked for above? I can't replicate it, though I am running on Ubuntu 20/22, so that might be part of it.

fwg commented

@josegonzalez Sure.

Deploy push output
fwg@Ganymed test-app % git push -f dokku main
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
-----> Cleaning up...
-----> Building test-app from herokuish
-----> Adding BUILD_ENV to build environment...
       BUILD_ENV added successfully
-----> PHP app detected
remote: -----> Bootstrapping...
remote: -----> Preparing platform package installation...
remote:        NOTICE: No runtime required in composer.lock; using PHP ^8.0.0
remote: -----> Installing platform packages...
remote:        - apache (2.4.58)
remote:        - php (8.3.1)
remote:        - composer (2.2.22)
remote:        - nginx (1.24.0)
remote: -----> Installing dependencies...
remote:        Composer version 2.2.22 2023-09-29 10:53:45
remote:        No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
remote:        Loading composer repositories with package information
remote:        Updating dependencies
remote:        Nothing to modify in lock file
remote:        Writing lock file
remote:        Installing dependencies from lock file
remote:        Nothing to install, update or remove
remote:        Generating optimized autoload files
remote: -----> Preparing runtime environment...
remote: -----> Checking for additional extensions to install...
-----> Discovering process types
       Procfile declares types -> web
-----> Releasing test-app...
-----> Checking for predeploy task
       No predeploy task found, skipping
-----> Checking for release task
       No release task found, skipping
=====> Processing deployment checks
remote:  !     No healthchecks found in app.json for web process type                          
       No web healthchecks found in app.json. Simple container checks will be performed.
       For more efficient zero downtime deployments, add healthchecks to your app.json. See https://dokku.com/docs/deployment/zero-downtime-deploys/ for examples
-----> Deploying test-app via the docker-local scheduler...
-----> Deploying web (count=1)
       Attempting pre-flight checks (web.1)
-----> Executing 2 healthchecks                                                        
       Running healthcheck name='default' type='uptime' uptime=10                      
       Running healthcheck name='port listening check' attempts=3 port=5000 retries=2 timeout=5 type='listening' wait=5
       Healthcheck succeeded name='port listening check'                               
       Healthcheck succeeded name='default'                                            
       All checks successful (web.1)
=====> Start of test-app container output (web.1)
       DOCUMENT_ROOT changed to 'public/'
       Using PHP-FPM configuration include 'fpm.conf'
       Assuming 512MB of RAM
       PHP memory_limit is 128M Bytes
       Starting php-fpm with 4 workers...
       Starting httpd...
=====> End of test-app container output (web.1)
       Scheduling old container shutdown in 60 seconds (web.1)
=====> Triggering early nginx proxy rebuild
-----> Ensuring network configuration is in sync for test-app
-----> Configuring test-app.server.de...(using built-in template)
-----> Creating https nginx.conf
       Enabling HSTS
       Reloading nginx
-----> Running post-deploy
remote:  !     Detected IPv4 domain name with nginx proxy enabled.
remote:  !     Ensure the default nginx site is removed before continuing.
-----> Ensuring network configuration is in sync for test-app
-----> Configuring test-app.server.de...(using built-in template)
-----> Creating https nginx.conf
       Enabling HSTS
       Reloading nginx
-----> Renaming containers
       Found previous container(s) (6472342779a5) named test-app.web.1
       Renaming container (6472342779a5) test-app.web.1 to test-app.web.1.1706007057
remote: Error response from daemon: Unable to complete atomic operation, key modified
remote: Error: failed to rename container named test-app.web.1
remote:  !     Unable to rename container
       Renaming container test-app.web.1.upcoming-5787 (c84a19b72247) to test-app.web.1
remote: Error response from daemon: Error when allocating new name: Conflict. The container name "/test-app.web.1" is already in use by container "6472342779a54839243e15adbc20b952c20d25abc3fc20094ea1954ee7e9589a". You have to remove (or rename) that container to be able to reuse that name.
remote: Error: failed to rename container named c84a19b72247237be5e2439e19df77ed73d5176c490c5621ee38f739d0fe2710
remote:  !     Failed to rename container test-app.web.1.upcoming-5787 (c84a19b72247)
=====> Start test-app (c84a19b72247) container output:
       DOCUMENT_ROOT changed to 'public/'
       Using PHP-FPM configuration include 'fpm.conf'
       Assuming 512MB of RAM
       PHP memory_limit is 128M Bytes
       Starting php-fpm with 4 workers...
       Starting httpd...
=====> End test-app (c84a19b72247) container output
-----> Checking for postdeploy task
       No postdeploy task found, skipping
-----> Shutting down old containers in 60 seconds
=====> Application deployed:
       http://test-app.server.de
       https://test-app.server.de

To bf-dokku:test-app

  • 8fd5f61...ffbb026 main -> main (forced update)
docker logs test-app.web.1
DOCUMENT_ROOT changed to 'public/'
Using PHP-FPM configuration include 'fpm.conf'
Assuming 512MB of RAM
PHP memory_limit is 128M Bytes
Starting php-fpm with 4 workers...
Starting httpd...
SIGTERM received, attempting graceful shutdown...
Stopping httpd gracefully...
Stopping php-fpm gracefully...
Shutdown complete.
2024/01/23 10:48:55 signal: terminated
DOCUMENT_ROOT changed to 'public/'
Using PHP-FPM configuration include 'fpm.conf'
Assuming 512MB of RAM
PHP memory_limit is 128M Bytes
Starting php-fpm with 4 workers...
Starting httpd...
172.17.0.1 - - [23/Jan/2024:10:50:00 +0000] "GET / HTTP/1.1" 200 26 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 (scanner.ducks.party)
172.17.0.1 - - [23/Jan/2024:10:50:01 +0000] "GET /favicon.ico HTTP/1.1" 404 196 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 (scanner.ducks.party)
SIGTERM received, attempting graceful shutdown...
Stopping httpd gracefully...
Stopping php-fpm gracefully...
Shutdown complete.
2024/01/23 10:51:58 signal: terminated
dokku report test-app (long)
-----> uname: Linux v2202401194404252532 6.1.0-17-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30) x86_64 GNU/Linux
-----> memory: 
                      total        used        free      shared  buff/cache   available
       Mem:            7940         856        6380          40        1041        7083
       Swap:              0           0           0
-----> docker version: 
       Client: Docker Engine - Community
        Version:           25.0.0
        API version:       1.44
        Go version:        go1.21.6
        Git commit:        e758fe5
        Built:             Thu Jan 18 17:09:59 2024
        OS/Arch:           linux/amd64
        Context:           default
   Server: Docker Engine - Community
    Engine:
     Version:          25.0.0
     API version:      1.44 (minimum version 1.24)
     Go version:       go1.21.6
     Git commit:       615dfdf
     Built:            Thu Jan 18 17:09:59 2024
     OS/Arch:          linux/amd64
     Experimental:     false
    containerd:
     Version:          1.6.27
     GitCommit:        a1496014c916f9e62104b33d1bb5bd03b0858e59
    runc:
     Version:          1.1.11
     GitCommit:        v1.1.11-0-g4bccb38
    docker-init:
     Version:          0.19.0
     GitCommit:        de40ad0

-----> docker daemon info:
Client: Docker Engine - Community
Version: 25.0.0
Context: default
Debug Mode: true
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.12.1
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.24.1
Path: /usr/libexec/docker/cli-plugins/docker-compose

   Server:
    Containers: 3
     Running: 3
     Paused: 0
     Stopped: 0
    Images: 15
    Server Version: 25.0.0
    Storage Driver: overlay2
     Backing Filesystem: extfs
     Supports d_type: true
     Using metacopy: false
     Native Overlay Diff: true
     userxattr: false
    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: a1496014c916f9e62104b33d1bb5bd03b0858e59
    runc version: v1.1.11-0-g4bccb38
    init version: de40ad0
    Security Options:
     apparmor
     seccomp
      Profile: builtin
     cgroupns
    Kernel Version: 6.1.0-17-amd64
    Operating System: Debian GNU/Linux 12 (bookworm)
    OSType: linux
    Architecture: x86_64
    CPUs: 6
    Total Memory: 7.754GiB
    Name: v2202401194404252532
    ID: 762ed7bc-21cd-4323-857f-81904512e0e4
    Docker Root Dir: /var/lib/docker
    Debug Mode: false
     File Descriptors: 45
     Goroutines: 61
     System Time: 2024-01-23T11:57:24.243706304+01:00
     EventsListeners: 1
    Experimental: false
    Insecure Registries:
     127.0.0.0/8
    Live Restore Enabled: false

-----> herokuish version:
herokuish: v0.7.2
buildpacks:
heroku-buildpack-multi v1.2.0
heroku-buildpack-ruby v259
heroku-buildpack-nodejs v224
heroku-buildpack-clojure v91
heroku-buildpack-python v237
heroku-buildpack-java v73
heroku-buildpack-gradle v39
heroku-buildpack-scala v96
heroku-buildpack-play v26
heroku-buildpack-php v239
heroku-buildpack-go v181
heroku-buildpack-nginx v24
buildpack-null v3
-----> dokku version: dokku version 0.32.4
-----> dokku-event-listener version: 0.15.0build+5268732
-----> dokku-update version: dokku-update 0.7.2
-----> docker-container-healthchecker version: 0.7.2
-----> docker-image-labeler version: 0.6.1build+c6e15a9
-----> git version: git version 2.39.2
-----> lambda-builder version: 0.5.0
-----> netrc version: 0.7.1build+677c033
-----> plugn version: plugn: 0.13.0build+fd5297a
-----> sigil version: 0.10.1build+e443be0
-----> sshcommand version: sshcommand 0.17.1
-----> dokku plugins:
00_dokku-standard 0.32.4 enabled dokku core standard plugin
20_events 0.32.4 enabled dokku core events logging plugin
app-json 0.32.4 enabled dokku core app-json plugin
apps 0.32.4 enabled dokku core apps plugin
builder 0.32.4 enabled dokku core builder plugin
builder-dockerfile 0.32.4 enabled dokku core builder-dockerfile plugin
builder-herokuish 0.32.4 enabled dokku core builder-herokuish plugin
builder-lambda 0.32.4 enabled dokku core builder-lambda plugin
builder-nixpacks 0.32.4 enabled dokku core builder-nixpacks plugin
builder-null 0.32.4 enabled dokku core builder-null plugin
builder-pack 0.32.4 enabled dokku core builder-pack plugin
buildpacks 0.32.4 enabled dokku core buildpacks plugin
caddy-vhosts 0.32.4 enabled dokku core caddy-vhosts plugin
certs 0.32.4 enabled dokku core certificate management plugin
checks 0.32.4 enabled dokku core checks plugin
common 0.32.4 enabled dokku core common plugin
config 0.32.4 enabled dokku core config plugin
cron 0.32.4 enabled dokku core cron plugin
docker-options 0.32.4 enabled dokku core docker-options plugin
domains 0.32.4 enabled dokku core domains plugin
enter 0.32.4 enabled dokku core enter plugin
git 0.32.4 enabled dokku core git plugin
haproxy-vhosts 0.32.4 enabled dokku core haproxy-vhosts plugin
letsencrypt 0.20.3 enabled Automated installation of let's encrypt TLS certificates
logs 0.32.4 enabled dokku core logs plugin
mysql 1.37.1 enabled dokku mysql service plugin
network 0.32.4 enabled dokku core network plugin
nginx-vhosts 0.32.4 enabled dokku core nginx-vhosts plugin
openresty-vhosts 0.32.4 enabled dokku core openresty-vhosts plugin
plugin 0.32.4 enabled dokku core plugin plugin
ports 0.32.4 enabled dokku core ports plugin
proxy 0.32.4 enabled dokku core proxy plugin
ps 0.32.4 enabled dokku core ps plugin
registry 0.32.4 enabled dokku core registry plugin
repo 0.32.4 enabled dokku core repo plugin
resource 0.32.4 enabled dokku core resource plugin
run 0.32.4 enabled dokku core run plugin
scheduler 0.32.4 enabled dokku core scheduler plugin
scheduler-docker-local 0.32.4 enabled dokku core scheduler-docker-local plugin
scheduler-null 0.32.4 enabled dokku core scheduler-null plugin
shell 0.32.4 enabled dokku core shell plugin
ssh-keys 0.32.4 enabled dokku core ssh-keys plugin
storage 0.32.4 enabled dokku core storage plugin
trace 0.32.4 enabled dokku core trace plugin
traefik-vhosts 0.32.4 enabled dokku core traefik-vhosts plugin
=====> test-app app-json information
App json computed selected: app.json
App json global selected: app.json
App json selected:
=====> test-app app information
App created at: 1705959811
App deploy source: git-push
App deploy source metadata: ffbb026470b0d5a681785b74db4ec4c6ac0fdb00
App dir: /home/dokku/test-app
App locked: false
=====> test-app builder information
Builder build dir:
Builder computed build dir:
Builder computed selected:
Builder global build dir:
Builder global selected:
Builder selected:
=====> test-app builder-dockerfile information
Builder dockerfile computed dockerfile path: Dockerfile
Builder dockerfile global dockerfile path: Dockerfile
Builder dockerfile dockerfile path:
=====> test-app builder-herokuish information
Builder herokuish computed allowed: true
Builder herokuish global allowed: true
Builder herokuish allowed:
=====> test-app builder-lambda information
Builder lambda computed lambdayml path: lambda.yml
Builder lambda global lambdayml path: lambda.yml
Builder lambda lambdayml path:
=====> test-app builder-nixpacks information
Builder nixpacks computed nixpackstoml path: nixpacks.toml
Builder nixpacks global nixpackstoml path: nixpacks.toml
Builder nixpacks nixpackstoml path:
Builder nixpacks computed no cache: false
Builder nixpacks global no cache: false
Builder nixpacks no cache:
=====> test-app builder-pack information
Builder pack computed projecttoml path: project.toml
Builder pack global projecttoml path: project.toml
Builder pack projecttoml path:
=====> test-app buildpacks information
Buildpacks computed stack: gliderlabs/herokuish:latest-22
Buildpacks global stack:
Buildpacks list:
Buildpacks stack:
=====> test-app caddy information
Caddy image: lucaslorentz/caddy-docker-proxy:2.8
Caddy letsencrypt email:
Caddy letsencrypt server: https://acme-v02.api.letsencrypt.org/directory
Caddy log level: ERROR
Caddy polling interval: 5s
Caddy tls internal: false
=====> test-app ssl information
Ssl dir: /home/dokku/test-app/tls
Ssl enabled: true
Ssl hostnames: test-app.server.de
Ssl expires at: Apr 21 20:53:53 2024 GMT
Ssl issuer: C = US, O = Let's Encrypt, CN = R3
Ssl starts at: Jan 22 20:53:54 2024 GMT
Ssl subject: subject=CN = test-app.server.de
Ssl verified: self signed
=====> test-app checks information
Checks disabled list: none
Checks skipped list: none
Checks computed wait to retire: 60
Checks global wait to retire: 60
Checks wait to retire:
=====> test-app docker options information
Docker options build:
Docker options deploy: --restart=on-failure:10
Docker options run:
=====> test-app domains information
Domains app enabled: true
Domains app vhosts: test-app.server.de
Domains global enabled: true
Domains global vhosts: server.de
=====> test-app git information
Git deploy branch: main
Git global deploy branch: master
Git keep git dir: false
Git rev env var: GIT_REV
Git sha:
Git source image:
Git last updated at: 1706007058
=====> test-app haproxy information
Haproxy image: byjg/easy-haproxy:4.3.0
Haproxy letsencrypt email:
Haproxy letsencrypt server: https://acme-v02.api.letsencrypt.org/directory
Haproxy log level: ERROR
=====> test-app letsencrypt information
Letsencrypt active: true
Letsencrypt autorenew: false
Letsencrypt computed dns provider:
Letsencrypt global dns provider:
Letsencrypt dns provider:
Letsencrypt computed email: le@faltrock.de
Letsencrypt global email: le@faltrock.de
Letsencrypt email:
Letsencrypt expiration: 1713732833
Letsencrypt computed graceperiod: 2592000
Letsencrypt global graceperiod:
Letsencrypt graceperiod:
Letsencrypt computed lego docker args:
Letsencrypt global lego docker args:
Letsencrypt lego docker args:
Letsencrypt computed server: https://acme-v02.api.letsencrypt.org/directory
Letsencrypt global server:
Letsencrypt server:
=====> test-app logs information
Logs computed max size: 10m
Logs global max size: 10m
Logs global vector sink:
Logs max size:
Logs vector sink:
=====> test-app network information
Network attach post create:
Network attach post deploy:
Network bind all interfaces: false
Network computed attach post create:
Network computed attach post deploy:
Network computed bind all interfaces: false
Network computed initial network:
Network computed tld:
Network global attach post create:
Network global attach post deploy:
Network global bind all interfaces: false
Network global initial network:
Network global tld:
Network initial network:
Network static web listener:
Network tld:
Network web listeners: 172.17.0.5:5000
=====> test-app nginx information
Nginx access log format:
Nginx access log path: /var/log/nginx/test-app-access.log
Nginx bind address ipv4:
Nginx bind address ipv6: ::
Nginx client max body size:
Nginx disable custom config: false
Nginx error log path: /var/log/nginx/test-app-error.log
Nginx global hsts: true
Nginx computed hsts: true
Nginx hsts:
Nginx hsts include subdomains: true
Nginx hsts max age: 15724800
Nginx hsts preload: false
Nginx computed nginx conf sigil path: nginx.conf.sigil
Nginx global nginx conf sigil path: nginx.conf.sigil
Nginx nginx conf sigil path:
Nginx proxy buffer size: 4096
Nginx proxy buffering: on
Nginx proxy buffers: 8 4096
Nginx proxy busy buffers size: 8192
Nginx proxy read timeout: 60s
Nginx last visited at: 1706007227
Nginx x forwarded for value: $remote_addr
Nginx x forwarded port value: $server_port
Nginx x forwarded proto value: $scheme
Nginx x forwarded ssl:
=====> test-app openresty information
Openresty access log format:
Openresty access log path: /var/log/nginx/test-app-access.log
Openresty bind address ipv4:
Openresty bind address ipv6: ::
Openresty client max body size:
Openresty error log path: /var/log/nginx/test-app-error.log
Openresty global hsts: true
Openresty computed hsts: true
Openresty hsts:
Openresty hsts include subdomains: true
Openresty hsts max age: 15724800
Openresty hsts preload: false
Openresty image: dokku/openresty-docker-proxy:0.6.0
Openresty letsencrypt email:
Openresty letsencrypt server: https://acme-v02.api.letsencrypt.org/directory
Openresty proxy buffer size: 4096
Openresty proxy buffering: on
Openresty proxy buffers: 8 4096
Openresty proxy busy buffers size: 8192
Openresty proxy read timeout: 60s
Openresty x forwarded for value: $remote_addr
Openresty x forwarded port value: $server_port
Openresty x forwarded proto value: $scheme
Openresty x forwarded ssl:
=====> test-app ports information
Ports map:
Ports map detected: http:80:5000 https:443:5000
=====> test-app proxy information
Proxy enabled: true
Proxy type: nginx
=====> test-app ps information
Deployed: true
Processes: 1
Ps can scale: true
Ps computed procfile path: Procfile
Ps global procfile path: Procfile
Ps procfile path:
Ps restart policy: on-failure:10
Restore: true
Running: true
Status web 1: running (CID: c84a19b7224)
=====> test-app registry information
Registry computed image repo: dokku/test-app
Registry computed push on release: false
Registry computed server:
Registry global push on release:
Registry global server:
Registry image repo:
Registry push on release:
Registry server:
Registry tag version:
=====> test-app resource information
=====> test-app scheduler information
Scheduler computed selected: docker-local
Scheduler global selected: docker-local
Scheduler selected:
=====> test-app scheduler-docker-local information
Scheduler docker local disable chown:
Scheduler docker local init process: true
Scheduler docker local parallel schedule count:
=====> test-app storage information
Storage build mounts:
Storage deploy mounts:
Storage run mounts:
=====> test-app traefik information
Traefik api enabled: false
Traefik api vhost: traefik.dokku.me
Traefik basic auth password:
Traefik basic auth username:
Traefik dashboard enabled: false
Traefik image: traefik:v2.10
Traefik letsencrypt email:
Traefik letsencrypt server: https://acme-v02.api.letsencrypt.org/directory
Traefik log level: ERROR
Traefik priority:

Can you display the docker inspect output of any containers related to your test-app container?

Okay well part of the issue looks like this:

Unable to complete atomic operation, key modified

Can you also try doing:

docker container rename test-app.web.1 test-app.web.1.1706007057

and displaying the output?

fwg commented

Yeah that fails...

root@v2202401194404252532:~# docker container rename test-app.web.1 test-app.web.1.1706007057
Error response from daemon: No such container: test-app.web.1
Error: failed to rename container named test-app.web.1

EDIT: ah well, logically, it fails, because the container doesn't exist anymore. 1 sec.

Ah right, we kill that container after a deploy anyways.

fwg commented

OK, I did another deploy and followed the log of the running test-app.web.1. Nothing happened during the deploy.
After the deploy failed, I tried to rename the container manually:

root@v2202401194404252532:~# docker container rename test-app.web.1 test-app.web.1.1706007057
Error response from daemon: Unable to complete atomic operation, key modified
Error: failed to rename container named test-app.web.1

Failed again :/

Okay I think this is a docker bug... Can you check what the output of docker events is during a rename operation? You can just rename any running container, Dokku doesn't care too much about that (it really only cares about container IDs).

fwg commented

docker events shows no output during the container rename.

fwg commented

Downgrading my docker-ce package to 24.0.7 solved the issue for me.

Beautiful, mind filing a bug with the Docker folks? Seems like there is an easy way to reproduce and we're not doing anything fancy here, just renaming a container.

Thanks for that. I think the workaround of using an older version of Docker for now is fine. If Docker decides that this is as expected or the fix from them takes too long, I'll consider workarounds/dropping the rename functionality/making it optional.

Thanks! We're looking at the issue; looks like a regression indeed. We're preparing a v25.0.1 patch release with some fixes, but not sure yet if the fix makes it in that release (if not, then v25.0.2)

tbho commented

Upgrading to docker v25.0.1 solved the issue, thanks @thaJeztah and @josegonzalez D

Awesome! Thanks for confirming it's fixed; that's good to hear ❤️