我正在使用Jenkins管道来创建Docker映像并将其存储在Docker Hub上。事件的顺序如下:
为此,我使用以下代码:
pipeline {
environment {
registry = "<user_name>/object"
registryCredential = 'dockerhub'
}
agent { label 'ubuntu16.04-slave-two' }
stages {
stage('Cloning Git') {
steps {
....
}
}
stage('Building image') {
steps{
sh '/usr/local/bin/docker-compose up --build '
}
}
stage('Deploy Image') {
steps{
script {
docker.withRegistry( '', registryCredential ) {
dockerImage.push()
}
}
}
}
stage('Remove Unused docker image') {
steps{
sh "docker rmi $registry:$BUILD_NUMBER"
}
}
}
}
除此命令外,一切似乎都可以正常工作
sh '/usr/local/bin/docker-compose up --build '
这确实有效-但是-因为我正在使用docker up
,所以它将启动服务器(在Jenkins创建图像之后)。
我需要一种生成(和命名)映像的方法,以便可以使用docker-compose
命令将其复制到Docker Hub。
是否可能-或-仅docker
命令本身可用于创建Docker映像。
这是docker-compose.yml
文件的简化版本(实际的文件具有更多服务):
version: '3'
services:
authorize-service:
build: ./authorizations
container_name: authorize-service
environment:
- DB_IP=XX.XX.XX.XX
- DB_PORT=1521
- DB_SID=TEST
- DB_USER=<id>
- DB_PASS=<password>
ports:
- 2700:5000
networks:
- tempnetwork
website:
build: ./website
container_name: authorize-website
links:
- authorize-service
volumes:
- ./website:/var/www/html
ports:
- 5000:80
networks:
- tempnetwork
depends_on:
- authorize-service
networks:
tempnetwork:
driver: bridge
任何帮助,提示或建议,将不胜感激。
TIA
答案 0 :(得分:1)
只使用/usr/local/bin/docker-compose build
而不是up