docker-compose支持mem_limit?我该怎么测试呢?
我有一个以下docker-compose.yml
repository:
image: myregistry/my_nginx_image
mem_limit: 60m
volumes:
- /etc/localtime:/etc/localtime
ports:
- "80:80"
Run Code Online (Sandbox Code Playgroud)
如何证明容器实际上不超过60 mb的RAM?
我在用:
提出这个问题时,Docker看起来很新,不能在网上找到这个问题的答案.我找到的唯一一个地方就是这篇文章,其中作者说这很难,就是这样.
在我的Spring Boot应用程序中,我想要将属性外部化以在Docker容器中运行.首次部署时,my-server/src/main/resources/application.yml应用程序按预期加载和使用当前所属的属性.一切正常.
但是,我的问题是我需要这些属性可以根据需要更新,所以我需要application.yml在Docker容器上访问一次该文件.但此时,它build/docker/在运行buildDocker任务之前未包含在目录中,因此在首次部署后不会复制或访问.
所以,我试过的是将Yaml文件复制到docker/构建目录,将其复制到可访问的目录(/opt/meanwhileinhell/myapp/conf),并使用该spring.config.location属性将配置的位置传递给我的Dockerfile中的Jar:
ENTRYPOINT ["java",\
...
"-jar", "/app.jar",\
"--spring.config.location=classpath:${configDirectory}"]
Run Code Online (Sandbox Code Playgroud)
看看在Docker容器上运行的Command我可以看到这是预期的:
/app.jar --spring.config.location=classpath:/opt/meanwhileinhell/myapp/conf]
Run Code Online (Sandbox Code Playgroud)
但是,当我更新此文件中的属性并重新启动Docker容器时,它没有获取更改.文件权限是:
-rw-r--r-- 1 root root 618 Sep 5 13:59 application.yml
Run Code Online (Sandbox Code Playgroud)
该文件规定:
配置自定义配置位置时,除默认位置外,还会使用它们.在默认位置之前搜索自定义位置.
我似乎无法弄清楚我做错了什么或错误解释,但更重要的是,这是将这种类型的Docker场景的配置外部化的正确方法吗?