[英]How to build multiple docker containers from jenkinsfile?
我有 3 個不同的 Docker 圖像。 我需要從 Jenkins 文件構建這些圖像。 我有 Wildfly、Postgres、Virtuoso Docker 圖像和單獨的 Docker 文件。 到目前為止,我正在使用以下命令來構建這些圖像:
目錄結構為,Docker為根目錄。
碼頭工人->構建-> 1。 wildfly 2. postgres 3. virtuoso
在我的 jenkins 文件中,我有以下命令來構建映像:
stage('Building test images')
{
sh 'docker build -t virtuoso -f $WORKSPACE/build/virtuoso/Dockerfile .'
}
但我收到如下錯誤:
Step 7/16 : COPY ./install $VIRT_HOME/install
COPY failed: stat /var/lib/docker/tmp/docker-builder636357036/install: no such file or directory
[Pipeline] }
以下是我的 dockerfile 供參考:
FROM virtuoso:latest
ENV var1 /opt/virtuoso-opensource
ENV VIRT_db /opt/virtuoso-opensource/var/lib/virtuoso/db
ENV RUN_CONFIG=/opt/virtuoso-opensource/install/config
RUN export PATH=$PATH:/opt/virtuoso-opensource/bin
RUN mkdir $var1/install
COPY ./install $var1/install
WORKDIR $VIRT_db
CMD ["/opt/virtuoso-opensource/bin/init.sh"]
工作區是 /home/jenkins/Docker ,我猜我正在從 $workspace 目錄運行 docker 構建命令,這個命令應該從 virtuoso 目錄運行。
我的問題是如何從 Jenkins 文件構建圖像?
提前致謝。
解決此問題的最簡單解決方案是在執行docker build
命令之前在腳本中輸入正確的文件夾。 例如:
stage('Building test images') {
steps {
sh '''
cd $WORKSPACE/build/virtuoso
docker build -t virtuoso .
'''
}
}
以下是答案:
stage('Build images'){
echo "workspace directory is ${workspace}"
dir ("$workspace/build/virtuoso")
{
sh 'docker build -t virtuoso -f $WORKSPACE/build/virtuoso/Dockerfile .'
}
dir ("$workspace/build/wildfly")
{
sh 'docker build -t wildfly -f $WORKSPACE/build/wildfly/Dockerfile .'
}
dir ("$workspace/build/postgres")
{
sh 'docker build -t postgres -f $WORKSPACE/build/postgres/Dockerfile .'
}
}
謝謝你的協助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.