sicutdeux@blog : ~/blog $ cat docker-compose-y-bcrypt.md
theme:auto
sicutdeux@blog:~/blog$cat docker-compose-y-bcrypt.md

docker-compose v2 y los $ del bcrypt

---
slug:
docker-compose-y-bcrypt
title:
docker-compose v2 y los $ del bcrypt
published:
2026-05-05
updated:
2026-05-19
author:
sicutdeux
lang:
es
tags:
[docker, infra]
reading_minutes:
3
---

docker-compose v2 y los $ del bcrypt

Si pasás un hash bcrypt por env_file en docker-compose, los $ te van a explotar en la cara. Compose v2 expande variables ${VAR} dentro de los values del env_file, y como bcrypt empieza con $2b$12$..., el parser cree que $2b es una variable, la busca, no existe, y la reemplaza por string vacío.

Workaround

Doblar los $ a $$ antes de escribir el archivo. En el CI:

echo "ADMIN_PASSWORD_HASH=$(echo "$HASH" | sed 's/\$/\$\$/g')"

Compose des-escapa los $$ al cargar. Funciona, pero es un papelón.