当前位置: 首页 > 知识库问答 >
问题:

Jenkins docker容器总是添加cat命令

方寒
2023-03-14

我正在创建Jenkins管道,用于在Docker容器上运行terraform。

pipeline {
    agent {
        docker {
            image 'hashicorp/terraform:full'
            args '--entrypoint=/bin/bash'
        }
    }
    stages {
        stage('execute') { 
            steps {
                sh 'terraform --version' 
            }
        }
    }
}
$ docker run -t -d -u 995:993 --entrypoint=/bin/bash -w /var/lib/jenkins/workspace/terraform -v /var/lib/jenkins/workspace/terraform:/var/lib/jenkins/workspace/terraform:rw,z -v /var/lib/jenkins/workspace/terraform@tmp:/var/lib/jenkins/workspace/terraform@tmp:rw,z -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** hashicorp/terraform:full cat

$ docker top a0b801d657d0fffdfa95c387564128b130ab1d28569ad59bd0151c8b7faf6ffd -eo pid,comm

java.io.IOException: Failed to run top 'a0b801d657d0fffdfa95c387564128b130ab1d28569ad59bd0151c8b7faf6ffd'. Error: Error response from daemon: Container a0b801d657d0fffdfa95c387564128b130ab1d28569ad59bd0151c8b7faf6ffd is not running

注意,我使用--entrypoint=/bin/bash将入口点覆盖到/bin/bash,因为hashiCorp/terraform:full已经定义了一个入口点。

共有1个答案

衡修洁
2023-03-14

我不得不将entrypoint更改为空,以禁用terraform容器定义中的entrypoint定义。我认为light图像对于执行Terraform就足够了。

我使用以下脚本获得了它:

pipeline {
  agent {
    docker {
        image 'hashicorp/terraform:light'
        args '--entrypoint='
    }
  }
  stages {
    stage('execute') { 
        steps {
            sh 'terraform --version' 
        }
    }
  }
}
 类似资料:
  • cat 命令可以用来显示文本文件的内容(类似于 DOS 下的 type 命令),也可以把几个文件内容附加到另一个文件中,即连接合并文件。 关于此命令,有人认为写 cat 命令的人是因为喜欢猫,因此给此命令起名为“cat”,其实不然,cat 是 concatenate(连接、连续)的简写。 cat 命令的基本格式如下: [root@localhost ~]# cat [选项] 文件名 或者 [roo

  • 我希望在另一个函数中使用此函数。这个“addTotal”函数的作用是返回某个客户的每个银行账户的总余额。我通过插入“return total对账单,它只获取第一个银行账户的余额。对此有什么建议吗?

  • 本文向大家介绍Docker 将容器添加到网络,包括了Docker 将容器添加到网络的使用技巧和注意事项,需要的朋友参考一下 示例 此命令将myAwesomeApp-1容器连接到app-backend网络。将容器添加到用户定义的网络时,嵌入式DNS解析器(它不是功能齐全的DNS服务器,并且不可导出)允许网络上的每个容器解析同一网络上的其他容器。此简单的DNS解析器在默认网桥bridge网络上不可用。

  • 问题内容: 在Redis 4.0中,有一个新命令UNLINK删除Redis内存中的密钥。 此命令与DEL非常相似:它将删除指定的密钥。与DEL一样,如果密钥不存在,则将其忽略。但是,该 命令在不同的线程中执行实际的内存回收 , 因此当DEL为时 , 它不会阻塞 。这就是命令名称的来源:该命令只是将键与键空间断开链接。实际的删除将在以后异步发生。 因此,可以始终(100%次)使用UNLINK而不是D

  • 我有一个Sinatra应用程序,在Docker中运行良好: 但是当我尝试添加Redis时: Redis似乎没有启动。 那么,将Redis添加到Ruby()Docker容器中的好方法是什么呢?

  • 我有一个docker容器,里面运行着一些进程(uwsgi和celery)。我想为这些进程创建一个celery用户和一个uwsgi用户,以及一个它们都将属于的worker组,以便分配权限。 我尝试将和添加到我的Dockerfile中,但这会导致问题,因为这些命令提示输入(我已经发布了下面构建的响应)。 将用户添加到Docker容器中以便为在容器中运行的工作者设置权限的最佳方法是什么? 我的Docke