loopbackio / loopbackio/loopback-next

Use FQIN in Dockerfile

Abierto
#9,841 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Ya se ha fusionado un pull request relacionado.

  • #9842 de @achrinza — fusionado
Lenguaje dominante
TypeScript
Estrellas
5.1k
Forks
1.1k
Merge medio
2 d 21 h
PR fusionados (30 d)
27

Descripción

Historically, we have used Unqualified Image Names. However, this is insecure as it is ambiguous on registry to use. Fully Qualified Image Names (FQIN) make explicit the domain name of the registry to pull from.

## Change details

For `Dockerfile`s, the general update will be:

```diff
+ FROM docker.io/library/node:18-slim
- FROM node:18-slim
```

Although there is special-handling for the `docker.io` registry that allows omission of `/library` namespace path prefix for "no-namespace" images, we should use the full FQIN so as to be consistent with the output of other utilities such as `podman image ls`.

## Impact

Other than updated `Dockerfile`s, there should be no other noticeable impact.

## Files to update

- `loopback-next`
- [docs/site/Application-generator.md](https://github.com/loopbackio/loopback-next/blob/553cfb173ece664e0d25f029f2ac27eeaef89897/docs/site/Application-generator.md?plain=1#L118)
- [examples/access-control-migration/Dockerfile](https://github.com/loopbackio/loopback-next/blob/553cfb173ece664e0d25f029f2ac27eeaef89897/examples/access-control-migration/Dockerfile#L2)
- [examples/multi-tenancy/Dockerfile](https://github.com/loopbackio/loopback-next/blob/553cfb173ece664e0d25f029f2ac27eeaef89897/examples/multi-tenancy/Dockerfile#L2)
- [examples/references-many/Dockerfile](https://github.com/loopbackio/loopback-next/blob/553cfb173ece664e0d25f029f2ac27eeaef89897/examples/references-many/Dockerfile#L2)
- [examples/rest-crud/Dockerfile](https://github.com/loopbackio/loopback-next/blob/553cfb173ece664e0d25f029f2ac27eeaef89897/examples/rest-crud/Dockerfile#L2)
- [examples/socketio/Dockerfile](https://github.com/loopbackio/loopback-next/blob/553cfb173ece664e0d25f029f2ac27eeaef89897/examples/socketio/Dockerfile#L2)
- [examples/todo/Dockerfile](https://github.com/loopbackio/loopback-next/blob/553cfb173ece664e0d25f029f2ac27eeaef89897/examples/todo/Dockerfile#L2)
- [examples/todo-jwt/Dockerfile](https://github.com/loopbackio/loopback-next/blob/553cfb173ece664e0d25f029f2ac27eeaef89897/examples/todo-jwt/Dockerfile#L2)
- [examples/todo-list/Dockerfile](https://github.com/loopbackio/loopback-next/blob/553cfb173ece664e0d25f029f2ac27eeaef89897/examples/todo-list/Dockerfile#L2)
- [packages/cli/generators/app/templates/Dockerfile](https://github.com/loopbackio/loopback-next/blob/553cfb173ece664e0d25f029f2ac27eeaef89897/packages/cli/generators/app/templates/Dockerfile#L4)
- `create-loopback`
- [templates/app/Dockerfile](https://github.com/loopbackio/create-loopback/blob/650ce5fe7d021b53e461af2994c9f0669aa3b23d/templates/app/Dockerfile#L2)
- `loopback4-example-shopping`
- [bin/dockerize.js](https://github.com/loopbackio/loopback4-example-shopping/blob/af15cf5e6a5d309c61da2ee9e522533ee9def980/bin/dockerize.js#L69-L107)
- [Dockerfile.monorepo](https://github.com/loopbackio/loopback4-example-shopping/blob/af15cf5e6a5d309c61da2ee9e522533ee9def980/Dockerfile.monorepo#L4)
- [Dockerfile.recommender](https://github.com/loopbackio/loopback4-example-shopping/blob/af15cf5e6a5d309c61da2ee9e522533ee9def980/Dockerfile.recommender#L6)
- [Dockerfile.shopping](https://github.com/loopbackio/loopback4-example-shopping/blob/af15cf5e6a5d309c61da2ee9e522533ee9def980/Dockerfile.shopping#L5)
- `loopback-blog`
- [blog/2019/2019-07-24-building-an-online-game-with-loopback-4-pt5.md](https://github.com/loopbackio/loopback-blog/blob/e7043a3870b8c58c22883f5608b1e2d5e5cd630a/blog/2019/2019-07-24-building-an-online-game-with-loopback-4-pt5.md?plain=1#L58)
- `starter`
- [Dockerfile](https://github.com/loopbackio/starter/blob/1861e2284ad3bb054fa69f2e7dba3e7c9153ed85/Dockerfile#L2)

## References

- https://github.com/search?q=org%3Aloopbackio%20language%3ADockerfile&type=code
- https://github.com/search?q=org%3Aloopbackio+%22FROM+node%3A%22&type=code
- https://github.com/containers/image/blob/95a2847696c8583d5bed0ce71fed3a32276aa870/docs/containers-registries.conf.5.md#note-risk-of-using-unqualified-image-names

### Similar changes in other projects

- https://github.com/NetApp/trident/pull/690
- https://github.com/ceph/ceph-csi/pull/1715
- https://github.com/hedgedoc/container/pull/437

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Revisa los Dockerfiles, las plantillas de Dockerfile, la documentación y bin/dockerize.js indicados en los repositorios mencionados, empezando por las líneas referenciadas y los enlaces de búsqueda en todo el repositorio. Actualiza de forma coherente cada referencia de imagen afectada y vuelve a buscar en los repositorios indicados para confirmar que las referencias sin calificar objetivo han desaparecido; el issue indica que no debe cambiar ningún otro comportamiento.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
docker, dockerfile
Área
devops, infrastructure
Tipo de issue
Refactorización
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
38/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.