Nie mogę określić procesora i pamięci dla usług określonych w wersji 3.
W wersji 2 działa dobrze z parametrami „mem_limit” i „cpu_shares” w ramach usług. Ale kończy się niepowodzeniem podczas korzystania z wersji 3, umieszczenie ich w sekcji wdrażania nie wydaje się warte, chyba że używam trybu roju.
Czy ktoś może pomóc?
version: "3"
services:
node:
build:
context: .
dockerfile: ./docker-build/Dockerfile.node
restart: always
environment:
- VIRTUAL_HOST=localhost
volumes:
- logs:/app/out/
expose:
- 8083
command: ["npm","start"]
cap_drop:
- NET_ADMIN
- SYS_ADMIN
docker
docker-compose
vivekyad4v
źródło
źródło
Odpowiedzi:
Wiem, że temat jest trochę stary i wydaje się nieaktualny, ale i tak udało mi się skorzystać z tych opcji:
podczas korzystania z wersji 3.7 pliku docker-compose
W moim przypadku pomogło użycie tego polecenia:
docker-compose --compatibility up
--compatibility
flaga oznacza (wzięte z dokumentacji):Myślę, że to świetnie, że nie muszę przywracać mojego pliku docker-compose z powrotem do wersji v2.
źródło
Więcej: https://docs.docker.com/compose/compose-file/#resources
W twoim konkretnym przypadku:
Uwaga:
Uwaga: Sieci w trybie Swarm nie łączą się. Jeśli chcesz połączyć się tylko wewnętrznie, musisz podłączyć się do sieci. Możesz 1) określić sieć zewnętrzną w innym pliku redagowania lub utworzyć sieć z parametrem --attachable (nakładka docker network create -d My-Network --attachable) W przeciwnym razie musisz opublikować port w następujący sposób:
źródło
docker stack deploy
do wdrożenia w roju.”deploy
jest ignorowany, jeśli nie używasz Swarm. Naprawdę nie ma powodu, aby używać formatu v3, chyba że używasz Swarm.memory-swap
opcję wymienioną na docs.docker.com/v17.12/config/containers/resource_constraints/… ? Nie widzę przykładu, jak to ustawić wdocker-compose.yml
( docs.docker.com/v17.12/compose/compose-file/#resources ). Dzięki wielkie.Docker Compose nie obsługuje ten
deploy
klucz. Jest to szanowane tylko wtedy, gdy używasz pliku YAML wersji 3 w stosie Docker.Ten komunikat jest drukowany po dodaniu
deploy
klucza dodocker-compose.yml
pliku, a następnie uruchomieniudocker-compose up -d
Dokumentacja ( https://docs.docker.com/compose/compose-file/#deploy ) mówi:
źródło