services:
  vault:
    image: hashicorp/vault:1.20.4
    container_name: devvault-vault
    restart: unless-stopped
    cap_add:
      - IPC_LOCK
    ports:
      - "127.0.0.1:8200:8200"
    volumes:
      - vault-data:/vault/file
      - vault-bootstrap:/vault/bootstrap
      - ./config:/vault/config:ro
      - ./policies:/vault/policies:ro
    command: vault server -config=/vault/config/vault.hcl
    healthcheck:
      test: ["CMD-SHELL", "VAULT_ADDR=http://127.0.0.1:8200 vault status -format=json; code=$$?; test $$code -eq 0 -o $$code -eq 2"]
      interval: 10s
      timeout: 5s
      retries: 12
      start_period: 10s

volumes:
  vault-data:
    name: devvault-vault-data
  vault-bootstrap:
    name: devvault-vault-bootstrap