feat(02-03): create docker-compose.yml with user directive
- Defines service with local image build - Specifies user directive (1000:1000) for non-root execution - Includes container_name for easy reference - Follows INF-01 requirement (no root) - Enables test scripts to verify configuration Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
37
labs/lab-01-iam/docker-compose.yml
Normal file
37
labs/lab-01-iam/docker-compose.yml
Normal file
@@ -0,0 +1,37 @@
|
||||
# Lab 01 - IAM & Sicurezza
|
||||
# Docker Compose configuration per container non-root
|
||||
#
|
||||
# Questo file definisce i servizi per il lab, assicurandosi che
|
||||
# TUTTI i container girino come utente non-root (INF-01).
|
||||
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
# Container di test per verificare l'esecuzione non-root
|
||||
lab01-test:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
image: lab01-non-root:latest
|
||||
container_name: lab01-iam-test
|
||||
# CRITICO: user directive assicura esecuzione non-root (INF-01)
|
||||
# Format: UID:GID
|
||||
# 1000:1000 corrisponde all'utente labuser creato nel Dockerfile
|
||||
user: "1000:1000"
|
||||
# Non esponiamo porte (non necessario per questo lab)
|
||||
# Le porte private non devono essere esposte sull'host (best practice)
|
||||
restart: unless-stopped
|
||||
# Nessun volume mount necessario per questo lab semplice
|
||||
# I volumi saranno introdotti nei lab successivi
|
||||
healthcheck:
|
||||
# Healthcheck per verificare che il container sia sano
|
||||
test: ["CMD", "sh", "-c", "whoami | grep -q labuser"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 5s
|
||||
|
||||
# Nessuna rete definita - useremo la default bridge network
|
||||
# Le reti custom isolate saranno introdotte nel Lab 02 (Network & VPC)
|
||||
|
||||
# Nessun volume definito - i volumi saranno introdotti nel Lab 04 (Storage & S3)
|
||||
Reference in New Issue
Block a user