docker compose バージョン 3 でメモリと CPU の制限を指定する方法 質問する

docker compose バージョン 3 でメモリと CPU の制限を指定する方法 質問する

バージョン 3 で指定されたサービスに対して CPU とメモリの制限を指定できません。

バージョン 2 では、サービス下のmem_limit&パラメータで正常に動作します。しかし、バージョン 3 を使用すると失敗します。swarm モードを使用しているのでない限り、セクションの下にパラメータを置くことは意味がないようです。cpu_sharesdeploy

誰か助けてくれませんか?

    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

ベストアンサー1

このトピックは少し古くて古臭いように思われますが、とにかくこれらのオプションを使用することができました:

deploy:
  resources:
    limits:
      cpus: '0.001'
      memory: 50M

docker-compose 3.7 バージョンを使用する場合

私の場合、次のコマンドを使うのが役に立ちました:

docker-compose --compatibility up

--compatibilityフラグの意味は次のとおりです (ドキュメントより抜粋):

設定されている場合、Compose は v3 ファイルのデプロイキーを Swarm 以外の同等のものに変換しようとします。

docker-compose ファイルを v2 に戻す必要がないのは素晴らしいと思います。

おすすめ記事