Tengo:

docker-compose.yml:

services:
  app:
    build: .

Y docker-compose.override.yml:

services:
  app:
    image: my_repo/my_app:my_tag

Cuando hago docker-compose up, en realidad lo hace build: . en lugar de usar el image: my_repo/my_app:my_tag anulado.

Supongo que debería elegir algún tipo de build: false o build: none para asegurarme de que lea el atributo image, ¿no es así? Dado que la anulación parece actuar como una combinación, resultaría como si ambas entradas estuvieran allí:

services:
  app:
    build: .
    image: my_repo/my_app:my_tag

Y parece que build es prioritario para image (de los documentos ).

2
Augustin Riedinger 23 oct. 2019 a las 18:12

1 respuesta

La mejor respuesta

Creo que la forma correcta de hacerlo es tener una base docker-compose.yml como:

services:
  app:
    image: my_repo/my_app:my_tag

Y el docker-compose.override.yml:

services:
  app:
    build: .

De esta manera, cuando inicie docker-compose up, la imagen se creará con el contexto de compilación ..

Otro ejemplo con docker-compose.override.yml con una imagen diferente:

services:
  app:
    image : my_repo/other_image:tag

Y aquí la imagen de docker-compose.override.yml tendrá prioridad.

0
michalk 23 oct. 2019 a las 16:02