0
0
Dockerdevops~30 mins

Compose watch for development in Docker - Mini Project: Build & Apply

Choose your learning style9 modes available
Compose watch for development
📖 Scenario: You are building a simple development environment using Docker Compose. You want to automatically restart your application container whenever you change the source code files. This helps you see your changes immediately without manually restarting the container.
🎯 Goal: Create a Docker Compose setup that watches for file changes in your app directory and restarts the container automatically during development.
📋 What You'll Learn
Create a Docker Compose file with a service named app
Mount the local ./app directory into the container
Use the restart: always policy initially
Add a command to run a simple watch script inside the container
Print a message showing the container restarts on file changes
💡 Why This Matters
🌍 Real World
Developers often want their code changes to reflect immediately without restarting containers manually. This setup helps automate that during development.
💼 Career
Knowing how to configure Docker Compose for live development is a valuable skill for DevOps engineers and developers working with containerized applications.
Progress0 / 4 steps
1
Create the initial Docker Compose file
Create a file named docker-compose.yml with a service called app that uses the image alpine. Mount the local directory ./app to /app inside the container.
Docker
Need a hint?

Use volumes to mount the local folder ./app into the container path /app.

2
Add restart policy and working directory
In the app service, add restart: always and set working_dir to /app.
Docker
Need a hint?

The restart key controls container restart behavior. working_dir sets the default directory inside the container.

3
Add a command to watch for file changes
Add a command to the app service that runs sh -c "while true; do inotifywait -e modify,create,delete -r /app && echo 'Files changed, restarting...'; sleep 1; done". This will watch for file changes in /app and print a message.
Docker
Need a hint?

Use inotifywait inside a shell loop to watch for file changes and print a message.

4
Print a message when container starts
Add a command that first prints "Starting watch on /app" then runs the watch loop. Use sh -c with echo followed by the while true loop.
Docker
Need a hint?

Chain commands in sh -c using semicolon ; to print a message before the loop.