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:
+6
-6
@@ -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`.
|
||||
|
||||
|
||||
@@ -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 ;;
|
||||
|
||||
Reference in New Issue
Block a user