Não consigo especificar CPU e memória para serviços especificados na versão 3.
Com a versão 2, funciona bem com os parâmetros "mem_limit" e "cpu_shares" nos serviços. Mas ele falha durante o uso da versão 3, colocá-los na seção de implantação não parece valer a pena, a menos que eu esteja usando o modo de enxame.
Alguém pode ajudar?
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
fonte
fonte
Respostas:
Eu sei que o tópico é um pouco antigo e parece desatualizado, mas de qualquer forma, consegui usar estas opções:
ao usar a versão 3.7 do docker-compose
O que ajudou no meu caso foi usar este comando:
docker-compose --compatibility up
--compatibility
bandeira significa (retirado da documentação):Acho ótimo não ter que reverter meu arquivo docker-compose para a v2.
fonte
Mais: https://docs.docker.com/compose/compose-file/#resources
No seu caso específico:
Nota:
Observe também: Redes no modo Swarm não fazem ponte. Se desejar se conectar apenas internamente, será necessário conectar-se à rede. Você pode 1) especificar uma rede externa em outro arquivo de composição ou criar a rede com o parâmetro --attachable (docker network create -d overlay My-Network --attachable) Caso contrário, você terá que publicar a porta desta forma:
fonte
docker stack deploy
para implantar em um enxame."deploy
é ignorado se você não estiver usando Swarm. Não há realmente nenhuma razão para usar o formato v3 a menos que você esteja usando o Swarm.memory-swap
opção mencionada em docs.docker.com/v17.12/config/containers/resource_constraints/… ? Não vejo um exemplo de como defini-lo emdocker-compose.yml
( docs.docker.com/v17.12/compose/compose-file/#resources ). Muito obrigado.O Docker Compose não oferece suporte para a
deploy
chave. Ele só é respeitado quando você usa o arquivo YAML da versão 3 em um Docker Stack.Esta mensagem é impressa quando você adiciona a
deploy
chave ao seudocker-compose.yml
arquivo e depois executadocker-compose up -d
A documentação ( https://docs.docker.com/compose/compose-file/#deploy ) diz:
fonte