Jak przesłonić nazwę projektu i nazwę sieci dla tworzenia dokerów

6

Czy możemy zastąpić naszą nazwę projektu i sieci wewnątrz docker-compose.yml, tj. Bez użycia flagi lub zmiennej środowiskowej?

ntviet18
źródło
Jak rozumiesz „nazwę projektu”? Nazwa obrazu?
Franz Wimmer
Nie, obecnie jest directory namei może być nadpisany przez COMPOSE_PROJECT_NAME, pierwsza opcja jest zbyt sztywna, ponieważ nazwa katalogu może się zmienić, druga ma wpływ na wszystkie projekty
ntviet18

Odpowiedzi:

6

Można to zrobić za pomocą parametru wywołania docker-compose:

$> docker-compose -p THISISMYPROJECT_AND_NWK_NAME up -d

Niestety w tej chwili nie ma sposobu, aby to utrzymać. (patrz: https://github.com/docker/compose/issues/745 )

Dlatego osobiście wolę dodawać alias bash dla moich projektów w ~ / .bash_aliases (Linux oparty na Debianie), na przykład:

# project PROJECT shortcuts
alias dc_PROJECT_up='docker-compose -p PROJECT up -d'
alias dc_PROJECT_down='docker-compose -p PROJECT down'

# general docker compose shortcuts
alias dc='docker-compose '
alias dc_up='docker-compose up -d'
alias dc_down='docker-compose down'

Więc mogę zadzwonić do dc_PROJECT_up, aby rozpocząć mój projekt z nazwą projektu PROJECT. Nazwa sieci to wtedy PROJECT_default.

Dodatkowo możesz skonfigurować dodatkowe sieci z niestandardowymi nazwami w docker-composer.yml w ten sposób (v. 2.1):

version: '2.1'

...

networks:
  mynwk:
    driver: bridge
    name: mynwk

 ...

Możesz to sprawdzić za pomocą następującego polecenia:

 $> docker network ls

Powinieneś otrzymać listę sieci, w tym twoją i domyślną.

Marcel Lange
źródło
1
Wygląda na to, że parametr nazwy nie działa już przy dokerze komponuj wersję 3
Alexis.Rolland
0

możesz utworzyć plik .env z opcjami klucz = wartość, takimi jak

COMPOSE_PROJECT_NAME={project name}

należy pamiętać, że będzie to działać tylko wtedy, gdy plik .env znajduje się w bieżącej ścieżce

sinaiy
źródło