Bash 通过Jenkins管道访问运行Matlab的Docker从站的命令行

Bash 通过Jenkins管道访问运行Matlab的Docker从站的命令行,bash,matlab,docker,jenkins,command-line,Bash,Matlab,Docker,Jenkins,Command Line,我使用MatlabDocker图像在容器中运行Matlab,并在其中进行计算。 通常使用docker run()启动容器时,它会启动一个运行Matlab的命令行,等待用户输入 我的目标是在Jenkins中将Docker映像用作构建从属映像,因此它会旋转容器,并在使用后自动将其杀死。所需的Matlab命令应在Jenkins作业中实现。到目前为止,一切都已就绪,Jenkins正在Docker从属环境中启动Matlab,然后退出: [Pipeline] sh + chmod +x startmatl

我使用MatlabDocker图像在容器中运行Matlab,并在其中进行计算。

通常使用docker run()启动容器时,它会启动一个运行Matlab的命令行,等待用户输入

我的目标是在Jenkins中将Docker映像用作构建从属映像,因此它会旋转容器,并在使用后自动将其杀死。所需的Matlab命令应在Jenkins作业中实现。到目前为止,一切都已就绪,Jenkins正在Docker从属环境中启动Matlab,然后退出:

[Pipeline] sh
+ chmod +x startmatlab.sh [Pipeline] sh
+ ./startmatlab.sh MATLAB is selecting SOFTWARE OPENGL rendering.
                            < M A T L A B (R) >
                  Copyright 1984-2019 The MathWorks, Inc.
                  R2019b (9.7.0.1190202) 64-bit (glnxa64)
                              August 21, 2019

  To get started, type doc. For product information, visit www.mathworks.com.

[Pipeline] }  
[Pipeline] //  stage 
[Pipeline] }  
[Pipeline] //  node 
[Pipeline]  End of Pipeline 
[withMaven]  pipelineGraphPublisher - triggerDownstreamPipelines 
[withMaven]  downstreamPipelineTriggerRunListener - completed in 58 ms Finished: SUCCESS
在我的Jenkins工作中,我定义了一个只执行脚本的阶段,并启动了运行良好的Matlab:

stage('test2'){
    sh 'chmod +x startmatlab.sh'
    sh './startmatlab.sh'
    sh '1+1'
}
唯一的问题是,我无法从Jenkins中的管道中获取任何命令,以便在containers命令行中执行。我试着只做一个简单的“1+1”并将其放在“/startmatlab.sh”下,但没有成功

/home/jenkins/workspace/DR/docker.MatlabR2019b@tmp/durable-f5af635b/script.sh: 1: /home/jenkins/workspace/DR/docker.MatlabR2019b@tmp/durable-f5af635b/script.sh: 1+1: not found
所以我的问题是,如果有人能帮我解决如何或在哪里执行我的命令


先谢谢你

如果你想在docker容器中执行命令,你需要运行docker run。看起来matlab不是作为容器运行的。链接的存储库中有一个如何在容器中执行命令的示例
/home/jenkins/workspace/DR/docker.MatlabR2019b@tmp/durable-f5af635b/script.sh: 1: /home/jenkins/workspace/DR/docker.MatlabR2019b@tmp/durable-f5af635b/script.sh: 1+1: not found