运行ruby测试时,在$PATH中找不到Jenkinsfile docker exec错误可执行文件

运行ruby测试时,在$PATH中找不到Jenkinsfile docker exec错误可执行文件,ruby,docker,parallel-processing,jenkins-pipeline,Ruby,Docker,Parallel Processing,Jenkins Pipeline,我在Jenkinsfile中有一个使用rake测试运行一些ruby测试文件的阶段。但是测试花费的时间太长,所以我计划实现单个测试的并行运行。但我在并行阶段执行单个测试时出错 当我们在lib文件夹中时,所有的测试用例都是使用rake测试运行的 当我们在lib/test文件夹中时,使用rubytest1.rb运行单独的测试用例 当前正在工作的文件: stage('Test Image') { steps {

我在Jenkinsfile中有一个使用rake测试运行一些ruby测试文件的阶段。但是测试花费的时间太长,所以我计划实现单个测试的并行运行。但我在并行阶段执行单个测试时出错

当我们在lib文件夹中时,所有的测试用例都是使用rake测试运行的

当我们在lib/test文件夹中时,使用rubytest1.rb运行单独的测试用例

当前正在工作的文件:

                stage('Test Image') {
                    steps {
                        script {
                                sh "docker run --rm --entrypoint '' -v \${AWS_CONFIG_FILE:-/home/ubuntu/.aws/config}:/root/.aws/config:ro -v \${AWS_SHARED_CREDENTIALS_FILE:-/home/ubuntu/.aws/credentials}:/root/.aws/credentials:ro -v ${WORKSPACE}/test-results:/srv/www/lib/test/html_reports ${IMAGE_NAME} rake test"
                                }
                           } 
                       }
使用并行测试修改了Jenkins文件:

                stage('Test the Image') {
                   parallel {
                      stage('Test1'){
                        steps {
                          script {
                                sh "docker run --rm --entrypoint '' -v \${AWS_CONFIG_FILE:-/home/ubuntu/.aws/config}:/root/.aws/config:ro -v \${AWS_SHARED_CREDENTIALS_FILE:-/home/ubuntu/.aws/credentials}:/root/.aws/credentials:ro -v ${WORKSPACE}/test-results:/srv/www/lib/test/html_reports docker exec -it ${IMAGE_NAME} bash -c 'cd test && ruby test1.rb'"
                               }
                            } 
                          }
                     stage('Test2'){
                        steps {
                          script {
                                sh "docker run --rm --entrypoint '' -v \${AWS_CONFIG_FILE:-/home/ubuntu/.aws/config}:/root/.aws/config:ro -v \${AWS_SHARED_CREDENTIALS_FILE:-/home/ubuntu/.aws/credentials}:/root/.aws/credentials:ro -v ${WORKSPACE}/test-results:/srv/www/lib/test/html_reports docker exec -it ${IMAGE_NAME} bash -c 'cd test && ruby test2.rb'"
                               }
                            } 
                          }
                        }
                     }
错误:docker exec\:在$PATH中找不到可执行文件:

Docker文件:

FROM ruby:2.5.3 as build

RUN apt-get update && \
    apt-get install -qy \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg2 \
    software-properties-common

RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -

RUN apt-key fingerprint 0EBFCD88

RUN add-apt-repository \
    "deb [arch=amd64] https://download.docker.com/linux/debian \
    $(lsb_release -cs) \
    stable"

RUN apt-get update && \
    apt-get install -qy \
    docker-ce \
    docker-ce-cli \
    containerd.io \
    build-essential \
    libldap-dev \
    libsasl2-dev \
    libxml2-dev \
    libxslt-dev \
    libldap2-dev \
    libsasl2-dev \
    git \
    jq

RUN curl -fsSL -o /usr/local/bin/aws-vault 'https://github.com/99designs/aws-vault/releases/download/v5.1.2/aws-vault-linux-amd64' && \
    chmod 755 /usr/local/bin/aws-vault

RUN gem install bundler -v '2.0.2'

WORKDIR /tmp
COPY Gemfile* ./
RUN bundler install --without=development

FROM ruby:2.5.3-slim

RUN mkdir -p /srv/www/lib /srv/www/tmp/sockets /srv/www/tmp/pids

COPY --from=build /usr/local/bundle /usr/local/bundle
COPY --from=build /usr/local/bin/aws-vault /usr/local/bin/aws-vault
COPY --from=build /usr/bin/docker* /usr/bin/
COPY ops-cli2.rb /srv/www/lib/cli2.rb


ENV AWS_SHARED_CREDENTIALS_FILE=/root/.aws/credentials
WORKDIR /srv/www/lib

COPY . .

RUN ["chmod", "+x", "/srv/www/lib/cli2.rb"]

ENTRYPOINT ["/srv/www/lib/cli2.rb"]

我认为您可以在命令行中删除docker exec-it