| name | docker-6-development-workflow-scripts |
| description | Sub-skill of docker: 6. Development Workflow Scripts. |
| version | 1.0.0 |
| category | operations |
| type | reference |
| scripts_exempt | true |
6. Development Workflow Scripts
6. Development Workflow Scripts
Makefile for Docker Operations:
.PHONY: build up down logs shell test clean
COMPOSE := docker compose
PROJECT := myapp
build:
$(COMPOSE) build --no-cache
up:
$(COMPOSE) up -d
up-logs:
$(COMPOSE) up
down:
$(COMPOSE) down
down-clean:
$(COMPOSE) down -v --remove-orphans
logs:
$(COMPOSE) logs -f
logs-%:
$(COMPOSE) logs -f $*
shell:
$(COMPOSE) exec app sh
test:
$(COMPOSE) exec app npm test
lint:
hadolint Dockerfile
hadolint Dockerfile.prod
analyze:
dive $(PROJECT):latest
clean:
docker system prune -f
docker volume prune -f
prod-build:
docker build -t $(PROJECT):latest -f Dockerfile.prod .
prod-push:
docker push $(PROJECT):latest
Development Helper Script:
#!/bin/bash
set -e
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
log_info() { echo -e "${GREEN}[INFO]${NC} $*"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $*"; }
log_error() { echo -e "${RED}[ERROR]${NC} $*" >&2; }
case "$1" in
start)
log_info "Starting development environment..."
docker compose up -d
log_info "Services started. Run 'docker compose logs -f' to view logs."
;;
stop)
log_info "Stopping development environment..."
docker compose down
;;
restart)
log_info "Restarting services..."
docker compose restart
;;
rebuild)
log_info "Rebuilding images..."
docker compose build --no-cache
docker compose up -d
;;
logs)
docker compose logs -f "${2:-}"
;;
shell)
SERVICE="${2:-app}"
log_info "Opening shell in $SERVICE..."
docker compose sh
;;
db)
log_info
docker compose db psql -U devuser -d devdb
;;
reset-db)
log_warn
-r response
[[ =~ ^[Yy]$ ]];
docker compose down -v
docker compose up -d db
log_info
;;
clean)
log_warn
docker compose down -v --remove-orphans
docker system prune -f
;;
status)
docker compose ps
;;
*)
1
;;