通过gitlab CICD作为变量设置Docker资源限制



我试图在docker容器中设置一些资源限制。我能够将以下值添加到docker-compose中。

resources:
limits:
cpus: '2'
memory: 4GB
reservations:
cpus: '1'
memory: 4GB

我该如何通过gitlab管道将它们传递给正在构建的容器,但将它们设置为变量?

我可以通过添加;来覆盖java堆大小;

java_xmx=${JAVA_XMX_OVERRIDE}

JAVA_XMX_OVERRIDE: "-Xmx2048m"

我如何对资源限制做同样的事情?

感谢

你可以在docker compose中使用变量,这些变量可以通过start命令传播。

compose.yaml:

version: '3.9'
services:
httpd:
container_name: httpd-test
image: httpd
deploy:
resources:
limits:
memory: ${MEMORY}

开始容器:

$ MEMORY=60M docker-compose up -d
$ docker stats
CONTAINER ID   NAME              CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O     PIDS
ace0d6d638e1   httpd-test        0.00%     26.86MiB / 60MiB      44.77%    4.3kB / 0B        0B / 0B       82

你应该能够在你的gitlab管道中定义一个环境变量:

variables:
MEMORY: 60M

我最终在管道中添加了一个docker-compose文件模板,在模板中我使用ansible修改了资源限制

- name: Compose Docker | Get text block for service   set_fact:
service_content: "{{ lookup('template', 'templates/docker-compose-service.yml.j2') }}"   tags:
- compose_docker

最新更新