Modular configs with include!
include:
- path: ./services/database.yml
- path: ./monitoring.yml
- path: ${ENV_CONFIG:-dev.yml}
Keep configurations DRY and reusable.
Learn more: lours.me/posts/compose-tip-030-include/
#Docker #Compose #Configuration #Modular
Modular configs with include!
include:
- path: ./services/database.yml
- path: ./monitoring.yml
- path: ${ENV_CONFIG:-dev.yml}
Keep configurations DRY and reusable.
Learn more: lours.me/posts/compose-tip-030-include/
#Docker #Compose #Configuration #Modular
On Hanselminutes, Scott Hanselman puts Docker Sandboxes to the test with Docker COO Mark Cavage. MicroVM isolation, agent autonomy, MCP - and a real escape attempt 🔥
Watch → www.youtube.com/watch?v=sQh-...
On Hanselminutes, Scott Hanselman puts Docker Sandboxes to the test with Docker COO Mark Cavage. MicroVM isolation, agent autonomy, MCP - and a real escape attempt 🔥
Watch → www.youtube.com/watch?v=sQh-...
Principle of least privilege!
cap_drop:
- ALL
cap_add:
- NET_BIND_SERVICE
Drop all capabilities, add only what's needed.
Secure containers properly!
Guide: lours.me/posts/compose-tip-029-container-capabilities/
#Docker #Compose #Security #Linux
Principle of least privilege!
cap_drop:
- ALL
cap_add:
- NET_BIND_SERVICE
Drop all capabilities, add only what's needed.
Secure containers properly!
Guide: lours.me/posts/compose-tip-029-container-capabilities/
#Docker #Compose #Security #Linux
Convert docker run to Compose!
docker run -p 3000:3000 -v ./data:/app myapp
Becomes:
services:
myapp:
image: myapp
ports: ["3000:3000"]
volumes: ["./data:/app"]
Clean & reusable!
Guide: lours.me/posts/compose-tip-028-docker-run-to-compose/
#Docker #Compose
Convert docker run to Compose!
docker run -p 3000:3000 -v ./data:/app myapp
Becomes:
services:
myapp:
image: myapp
ports: ["3000:3000"]
volumes: ["./data:/app"]
Clean & reusable!
Guide: lours.me/posts/compose-tip-028-docker-run-to-compose/
#Docker #Compose
🐳 Here's a daily tip just for you!
Want to breeze through those Anthropic outages like it’s nothing? ⚠️
cagent supports fallback models for when a provider fails to respond. 🎉
🐳 Here's a daily tip just for you!
Want to breeze through those Anthropic outages like it’s nothing? ⚠️
cagent supports fallback models for when a provider fails to respond. 🎉
Extension fields aren't just for YAML reuse!
x-region: us-east-1
x-kubernetes:
namespace: production
services:
api:
x-owner: api-team
Metadata for tools & platforms!
Guide: lours.me/posts/compose-tip-027-extension-metadata/
#Docker #Kubernetes #Metadata #compose
Extension fields aren't just for YAML reuse!
x-region: us-east-1
x-kubernetes:
namespace: production
services:
api:
x-owner: api-team
Metadata for tools & platforms!
Guide: lours.me/posts/compose-tip-027-extension-metadata/
#Docker #Kubernetes #Metadata #compose
Keep services running with smart restart policies!
restart: always | unless-stopped | on-failure | no
Configure automatic recovery from crashes and failures.
Guide: lours.me/posts/compose-tip-026-restart-policies/
#Docker #Reliability #DevOps #compose
Keep services running with smart restart policies!
restart: always | unless-stopped | on-failure | no
Configure automatic recovery from crashes and failures.
Guide: lours.me/posts/compose-tip-026-restart-policies/
#Docker #Reliability #DevOps #compose
What's an AI Agent without Skills?
🐳 Here's a daily tip just for you!
Your agent only needs this to support Skills. Whether it's Codex style Skills, Claude style or Agent Skills standard style, we got you covered!
What's an AI Agent without Skills?
🐳 Here's a daily tip just for you!
Your agent only needs this to support Skills. Whether it's Codex style Skills, Claude style or Agent Skills standard style, we got you covered!
It's very customisable. Use it to build and share any kind of AI Agents. Not just Coding Agents!
🐳 Here's a daily tip just for you!
An agent can have its own super fast local RAG in less than 10 lines of yaml.
It's very customisable. Use it to build and share any kind of AI Agents. Not just Coding Agents!
🐳 Here's a daily tip just for you!
An agent can have its own super fast local RAG in less than 10 lines of yaml.
Learn how to set up a minimalist AI coding assistant in @docker.com with Devcontainer + Docker Model Runner.
Perfect for local, privacy-friendly AI coding.
🌍 k33g.org/20260205-PI%...
#TinyLLM #CodingAgent #Docker
Learn how to set up a minimalist AI coding assistant in @docker.com with Devcontainer + Docker Model Runner.
Perfect for local, privacy-friendly AI coding.
🌍 k33g.org/20260205-PI%...
#TinyLLM #CodingAgent #Docker
🐳 Here's a daily tip just for you!
Use /cost to see the detailed cost of a session.
🐳 Here's a daily tip just for you!
Use /cost to see the detailed cost of a session.
Docker Sandboxes are now available.
They use isolated microVMs so agents can install packages, run Docker, and modify configs - without touching your host system.
Read more → https://bit.ly/49QJBH6
Docker Sandboxes are now available.
They use isolated microVMs so agents can install packages, run Docker, and modify configs - without touching your host system.
Read more → https://bit.ly/49QJBH6
Debug faster with smart logging!
docker compose logs -f --tail 50 api
docker compose logs --since 5m
docker compose logs | grep -i error
Master log commands: lours.me/posts/compose-tip-020-docker-compose-logs/
#Docker #Debugging #Logs
Debug faster with smart logging!
docker compose logs -f --tail 50 api
docker compose logs --since 5m
docker compose logs | grep -i error
Master log commands: lours.me/posts/compose-tip-020-docker-compose-logs/
#Docker #Debugging #Logs
Seamless local development!
compose.yml + compose.override.yml = automatic merging
Production: docker compose -f compose.yml up
Dev: docker compose up (includes override)
Details: lours.me/posts/compose-tip-019-override-files/
#Docker #Development #DevEx
Seamless local development!
compose.yml + compose.override.yml = automatic merging
Production: docker compose -f compose.yml up
Dev: docker compose up (includes override)
Details: lours.me/posts/compose-tip-019-override-files/
#Docker #Development #DevEx
Give containers time to clean up!
stop_grace_period: 2m
stop_signal: SIGTERM
Ensures databases close properly, transactions complete, and data saves.
Learn more: lours.me/posts/compose-tip-018-graceful-shutdown/
#Docker #Runtime #Reliability
Give containers time to clean up!
stop_grace_period: 2m
stop_signal: SIGTERM
Ensures databases close properly, transactions complete, and data saves.
Learn more: lours.me/posts/compose-tip-018-graceful-shutdown/
#Docker #Runtime #Reliability
Zero-downtime deploys with Traefik 🚦
Switch traffic via env vars:
BLUE_ENABLED=false GREEN_ENABLED=true docker compose up -d
Blue/green & instant routing...
Guide 👉 lours.me/posts/compose-tip-015-blue-green-deployments/
#Docker #Traefik #devops
Zero-downtime deploys with Traefik 🚦
Switch traffic via env vars:
BLUE_ENABLED=false GREEN_ENABLED=true docker compose up -d
Blue/green & instant routing...
Guide 👉 lours.me/posts/compose-tip-015-blue-green-deployments/
#Docker #Traefik #devops
Stop running containers as root!
services:
app:
user: "1000:1000"
Simple change, huge security improvement. Defense in depth.
How to do it right: lours.me/posts/compose-tip-014-non-root-users/
#Docker #Security #DevSecOps
Stop running containers as root!
services:
app:
user: "1000:1000"
Simple change, huge security improvement. Defense in depth.
How to do it right: lours.me/posts/compose-tip-014-non-root-users/
#Docker #Security #DevSecOps
Connect containers across different projects!
Create external networks to share databases, caches, or APIs between multiple Compose stacks.
Perfect for microservices architecture.
Learn how: lours.me/posts/compose-tip-013-external-networks/
#Docker #Microservices
Connect containers across different projects!
Create external networks to share databases, caches, or APIs between multiple Compose stacks.
Perfect for microservices architecture.
Learn how: lours.me/posts/compose-tip-013-external-networks/
#Docker #Microservices
One Dockerfile, multiple environment builds!
Use `target` to build specific stages:
• Dev stage: 450MB (with tools)
• Prod stage: 12MB (optimized)
That's 37x smaller! Same Dockerfile.
Details: lours.me/posts/compose-tip-012-target-build-stages/
#Docker #DockerCompose
One Dockerfile, multiple environment builds!
Use `target` to build specific stages:
• Dev stage: 450MB (with tools)
• Prod stage: 12MB (optimized)
That's 37x smaller! Same Dockerfile.
Details: lours.me/posts/compose-tip-012-target-build-stages/
#Docker #DockerCompose
One Dockerfile, multiple environment builds!
Use `target` to build specific stages:
• Dev stage: 450MB (with tools)
• Prod stage: 12MB (optimized)
That's 37x smaller! Same Dockerfile.
Details: lours.me/posts/compose-tip-012-target-build-stages/
#Docker #DockerCompose
Give you dev containers hot reload capabilities
docker compose up --watch
Auto-syncs code changes, rebuild on dep updates & reloads on config modifications.
Read more: lours.me/posts/compose-tip-011-docker-compose-watch/
#Docker #DockerCompose #DevTools
Give you dev containers hot reload capabilities
docker compose up --watch
Auto-syncs code changes, rebuild on dep updates & reloads on config modifications.
Read more: lours.me/posts/compose-tip-011-docker-compose-watch/
#Docker #DockerCompose #DevTools
Zombie processes? Signals not working?
services:
app:
init: true
Adds tiny init system (Tini) as PID 1. Handles signals properly, reaps zombies.
Essential for Node.js, Python apps!
Details: lours.me/posts/compose-tip-010-init-pid1/
#Docker #BestPractices
Zombie processes? Signals not working?
services:
app:
init: true
Adds tiny init system (Tini) as PID 1. Handles signals properly, reaps zombies.
Essential for Node.js, Python apps!
Details: lours.me/posts/compose-tip-010-init-pid1/
#Docker #BestPractices
DHI images = max security. But no tools for healthchecks!
Solution: Secure sidecar
app-health:
image: dhi.io/curl:8-debian13-dev
network_mode: "service:app"
Shares network → localhost works!
Guide: lours.me/posts/compose-tip-008-dhi-healthcheck/
#Docker #Security
DHI images = max security. But no tools for healthchecks!
Solution: Secure sidecar
app-health:
image: dhi.io/curl:8-debian13-dev
network_mode: "service:app"
Shares network → localhost works!
Guide: lours.me/posts/compose-tip-008-dhi-healthcheck/
#Docker #Security
Need to restart just one service? Keep the rest running:
docker compose up -d web
Updates and restarts ONLY the web service. Database, message broker queues stay up, no data loss.
Guide: lours.me/posts/compose-tip-007-restart-single/
#Docker #DockerCompose
Need to restart just one service? Keep the rest running:
docker compose up -d web
Updates and restarts ONLY the web service. Database, message broker queues stay up, no data loss.
Guide: lours.me/posts/compose-tip-007-restart-single/
#Docker #DockerCompose