docker / getting-started-todo-app

Sample application to get started with Docker
Apache License 2.0
31 stars 128 forks source link

`docker compose watch` fails #18

Open rose-munaretto opened 5 months ago

rose-munaretto commented 5 months ago

I'm not sure if this is the right place to report and maybe it should probably go to docker/compose repo so feel free to redirect me there.

Description

While I'm trying to follow the guide, docker compose watch throws an error.

cannot take exclusive lock for project "getting-started-todo-app": open /run/user/1000/getting-started-todo-app.pid: no such file or directory

Steps To Reproduce

  1. Open Develop with containers guide and follow "Start the project" steps.
  2. Clone the repo.
  3. Run docker compose watch.
  4. Error is thrown.

Compose Version

Docker Compose version v2.27.1-desktop.1

Docker Environment

Client:
 Version:    26.1.4
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.14.1-desktop.1
    Path:     /usr/local/lib/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.27.1-desktop.1
    Path:     /usr/local/lib/docker/cli-plugins/docker-compose
  debug: Get a shell into any image or container (Docker Inc.)
    Version:  0.0.32
    Path:     /usr/local/lib/docker/cli-plugins/docker-debug
  dev: Docker Dev Environments (Docker Inc.)
    Version:  v0.1.2
    Path:     /usr/local/lib/docker/cli-plugins/docker-dev
  extension: Manages Docker extensions (Docker Inc.)
    Version:  v0.2.24
    Path:     /usr/local/lib/docker/cli-plugins/docker-extension
  feedback: Provide feedback, right in your terminal! (Docker Inc.)
    Version:  v1.0.5
    Path:     /usr/local/lib/docker/cli-plugins/docker-feedback
  init: Creates Docker-related starter files for your project (Docker Inc.)
    Version:  v1.2.0
    Path:     /usr/local/lib/docker/cli-plugins/docker-init
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
    Version:  0.6.0
    Path:     /usr/local/lib/docker/cli-plugins/docker-sbom
  scout: Docker Scout (Docker Inc.)
    Version:  v1.9.3
    Path:     /usr/local/lib/docker/cli-plugins/docker-scout

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 3
 Server Version: 26.1.4
 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: cgroupfs
 Cgroup Version: 1
 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: d2d58213f83a351ca8f528a95fbd145f5654e957
 runc version: v1.1.12-0-g51d5e94
 init version: de40ad0
 Security Options:
  seccomp
   Profile: unconfined
 Kernel Version: 5.15.153.1-microsoft-standard-WSL2
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 12
 Total Memory: 7.722GiB
 Name: docker-desktop
 ID: e896569e-d924-4f59-8a63-c82bf64718f3
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Labels:
  com.docker.desktop.address=unix:///var/run/docker-cli.sock
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5555
  127.0.0.0/8
 Live Restore Enabled: false

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
WARNING: daemon is not using the default seccomp profile
rose-munaretto commented 5 months ago

While digging on Compose Watch documentation, it turned out that docker compose up --watch command works 🤷‍♀️

I don't know if that helps you but in my case it allows me to keep following the tutorial ✌️

thedayisntgray commented 4 months ago

I also had issues.

Neither downloading the Zip file in the guides nor cloning the git repo worked for me.

This is what I get when I try to run docker compose watch on the project I pulled from github.

Screenshot 2024-07-13 at 12 59 23 PM

When I try to run the docker compose watch in the project I get form the zip file I also run into issues:

Screenshot 2024-07-13 at 1 00 59 PM

Screenshot 2024-07-13 at 1 01 13 PM

Hope this helps someone who wants to look into this further.

ajeetraina commented 4 months ago

@thedayisntgray You can use docker compose up --watch to bring up the application.

yishanby commented 4 months ago

Change the my sql setting as the following can solve this problem.

` mysql: image: mysql:8.0 volumes:

kaworuist commented 4 months ago

@thedayisntgray restart main-backend container. This may be because the mysql container has not been successfully connected when the backend container command is executed. The backend container does not restart when the setting command fails. Therefore, restart the container manually

jamesocoder commented 1 week ago

I had the same error as @rose-munaretto and the same error log as @thedayisntgray's first image. After poking around the container and the source files, I came to the same conclusion as @kaworuist: all of the services are trying to start up at the same time and mysql is lagging behind the rest, causing the backend to fail to connect to it.

I'd like to suggest an easy update to the project that seems to have fixed things for me without having to use docker compose up --watch (meaning we would be able to use docker compose watch as the tutorial still suggests): add a depends_on element (reference) to the compose.yaml file.

backend:
  depends_on:
    - mysql

If I understand this correctly, this will cause Docker compose to ensure mysql is started before attempting to start backend.

After adding this and reattempting docker compose watch from a clean, imageless state, everything worked for me! I didn't encounter the same error.

chartley1988 commented 9 hours ago

I had the same error as @rose-munaretto and the same error log as @thedayisntgray's first image. After poking around the container and the source files, I came to the same conclusion as @kaworuist: all of the services are trying to start up at the same time and mysql is lagging behind the rest, causing the backend to fail to connect to it.

I'd like to suggest an easy update to the project that seems to have fixed things for me without having to use docker compose up --watch (meaning we would be able to use docker compose watch as the tutorial still suggests): add a depends_on element (reference) to the compose.yaml file.

backend:
  depends_on:
    - mysql

If I understand this correctly, this will cause Docker compose to ensure mysql is started before attempting to start backend.

After adding this and reattempting docker compose watch from a clean, imageless state, everything worked for me! I didn't encounter the same error.

This fixed it for me, I was having all the 500 errors too