如何与特定用户一起运行Concourse CI作业任务?

L S*_*lva 4 concourse

在Concourse CI中,默认情况下,作业任务的基础容器将被实例化并与用户一起运行root.

如果用于我的任务的容器需要与不同的用户(例如postgres)执行,我怎么能在Concourse中执行此操作?

L S*_*lva 6

Concourse任务提供了一个user参数,用于显式设置用户运行其容器.见http://concourse-ci.org/running-tasks.html#task-run-user.

这是一个示例Concourse管道,用于演示该参数的使用:

---
jobs:
- name: check-container-user
  plan:
  - do:
    - task: container-user-postgres
      config:
        platform: linux
        image_resource:
          type: docker-image
          source:
            repository: postgres
            tag: "latest"
        run:
          user: postgres
          path: sh
          args:
          - -exc
          - |
            whoami
            echo "Container running with postgres user"
Run Code Online (Sandbox Code Playgroud)