Pasa el nombre de la imagen a minúsculas para que Docker acepte la carpeta del servicio.

Un directorio como SALE-HITES-BFF deja de fallar el build por el formato del repositorio.
This commit is contained in:
2026-10-06 19:35:39 -03:00
parent fa125ed616
commit 2c727244df
3 changed files with 17 additions and 12 deletions
+6 -6
View File
@@ -8,7 +8,7 @@ Construye la imagen nativa de Quarkus y la envía al daemon Docker de un host re
### Qué hace el flujo
1. Toma el nombre de la imagen de la última carpeta de la ubicación del servicio y lee `version` de [`pom.xml`](../pom.xml) para el tag, salvo que uses `--name` o `--tag`. Si no hay `pom.xml`, el tag es `1.0.0-SNAPSHOT`.
1. Toma el nombre de la imagen de la última carpeta de la ubicación del servicio, en minúsculas, y lee `version` de [`pom.xml`](../pom.xml) para el tag, salvo que uses `--name` o `--tag`. Si no hay `pom.xml`, el tag es `1.0.0-SNAPSHOT`. `--name` también se pasa a minúsculas.
2. Ejecuta `docker build` para la plataforma fija `linux/amd64` (útil si construyes desde un Mac arm64). Con `--type java` (el valor por defecto) usa [`src/main/docker/Dockerfile`](../src/main/docker/Dockerfile). Con `--type web` usa `Dockerfile` en la raíz del servicio.
3. Ejecuta `docker pussh` hacia el destino SSH indicado.
4. Comprueba por SSH que la imagen existe en el remoto (salvo `--no-verify`).
@@ -60,18 +60,18 @@ Ayuda integrada (en inglés):
|--------|-------------|
| `--remote TARGET` | Destino SSH: `usuario@host[:puerto]` o un alias definido en `~/.ssh/config` (sin `@`). |
**Identidad de la imagen** (el nombre es la última carpeta del servicio; el tag sale de `pom.xml` si existe)
**Identidad de la imagen** (el nombre es la última carpeta del servicio, en minúsculas; el tag sale de `pom.xml` si existe)
| Opción | Descripción |
|--------|-------------|
| `--name NAME` | Nombre del repositorio de la imagen. |
| `--name NAME` | Nombre del repositorio de la imagen. Se guarda en minúsculas. |
| `--tag TAG` | Tag de la imagen. |
**Directorio de trabajo**
| Opción | Descripción |
|--------|-------------|
| `--project-dir PATH` | Raíz del servicio. El nombre de la imagen es su última carpeta. |
| `--project-dir PATH` | Raíz del servicio. El nombre de la imagen es su última carpeta, en minúsculas. |
| `PROJECT_DIR` | Misma función vía entorno. |
**Build**
@@ -169,7 +169,7 @@ ssh deploy@prod.example.com \
"docker run -d --name <carpeta> --restart unless-stopped -p 8080:8080 <carpeta>:<version>"
```
Sustituye `<carpeta>` por la última carpeta de la ubicación del servicio (o el valor de `--name`) y `<version>` por el tag del build (el de `pom.xml`, `1.0.0-SNAPSHOT` si no hay POM, o el de `--tag`).
Sustituye `<carpeta>` por la última carpeta de la ubicación del servicio en minúsculas (o el valor de `--name`, también en minúsculas) y `<version>` por el tag del build (el de `pom.xml`, `1.0.0-SNAPSHOT` si no hay POM, o el de `--tag`).
### Solución de problemas
@@ -219,7 +219,7 @@ Formato del archivo: una ruta por línea y, si hace falta, un segundo campo `jav
./portal web
```
`java` usa `src/main/docker/Dockerfile`. `web` usa `Dockerfile` en la raíz del servicio. El nombre de la imagen es la última carpeta de esa ruta. El tag sale de `pom.xml` si existe; si no, es `1.0.0-SNAPSHOT`.
`java` usa `src/main/docker/Dockerfile`. `web` usa `Dockerfile` en la raíz del servicio. El nombre de la imagen es la última carpeta de esa ruta, en minúsculas. El tag sale de `pom.xml` si existe; si no, es `1.0.0-SNAPSHOT`.
Se reenvían a cada servicio: `--ssh-key`, `--ssh-config`, `--skip-build`, `--no-verify` y `--cleanup`, más el `--type` de esa línea. No se aceptan `--name`, `--tag`, `--project-dir` ni `--type`.
+10 -5
View File
@@ -67,14 +67,14 @@ Required:
Image identity:
--name NAME Image repository name (default: last directory of
the service location)
the service location, lowercased)
--tag TAG Local build tag (pom.xml version by default, or
1.0.0-SNAPSHOT if there is no pom.xml). On the
remote only :latest and vYYYY.MM.DD-HH.MM (UTC).
Working directory (defaults to the parent of the script's directory):
--project-dir PATH Service root. The image name is its last directory
(override with env PROJECT_DIR)
--project-dir PATH Service root. The image name is its last directory,
lowercased (override with env PROJECT_DIR)
Build options:
--type java|web Dockerfile location. java (default):
@@ -142,6 +142,11 @@ resolve_dockerfile() {
esac
}
# Docker repository names must be lowercase. ${var,,} needs bash 4+.
lowercase() {
printf '%s' "$1" | tr '[:upper:]' '[:lower:]'
}
# Last directory of the service location (cwd must already be that directory).
image_name_from_location() {
local dir
@@ -149,7 +154,7 @@ image_name_from_location() {
dir="${dir%/}"
[[ -n "$dir" && "$dir" != "/" ]] \
|| die "Cannot derive image name from project directory."
printf '%s' "${dir##*/}"
lowercase "${dir##*/}"
}
require() {
@@ -408,7 +413,7 @@ push_via_registry_tunnel() {
while [[ $# -gt 0 ]]; do
case "$1" in
--remote) REMOTE="$2"; shift 2 ;;
--name) IMAGE_NAME="$2"; shift 2 ;;
--name) IMAGE_NAME="$(lowercase "$2")"; shift 2 ;;
--tag) IMAGE_TAG="$2"; shift 2 ;;
--ssh-key) SSH_KEY="$2"; shift 2 ;;
--ssh-config) SSH_CONFIG="$2"; shift 2 ;;