[英]Gitlab pipeline error when building quarkus project and dockerizing it
我在 gitlab 中编写了一个简单的管道来构建一个 quarkus 项目,将其 docker 化并将最终图像推送到注册表。 这里是:
image: maven:latest
stages:
- build-package-dockerize
- deploy
before_script:
- apt-get update -qq
- apt-get install -y -qq build-essential libz-dev zlib1g-dev
build, package, dockerize:
stage: build-package-dockerize
script:
- mvn clean package -DskipTests -Dquarkus.profile=dev -Dquarkus.container-image.build=true -Dquarkus.container-image.push=true -Dquarkus.container-image.group=pss -Dquarkus.container-image.tag=$CI_BUILD_REF -Dquarkus.container-image.registry=$DOCKER_REGISTRY_AZURE_URL -Dquarkus.container-image.username=$DOCKER_REGISTRY_AZURE_USERNAME -Dquarkus.container-image.password=$DOCKER_REGISTRY_AZURE_PASSWORD
only:
- DEV
当 pipe 运行时,它在 ryuk 容器部署中返回错误:
[INFO] Container testcontainers/ryuk:0.3.3 is starting: 2611772cb72f4f2437ee1c405243d7519dfe787d8a0f343b292e8b2db4aa4869
1745[ERROR] Could not start container
1746java.lang.IllegalStateException: Container is removed
[ERROR] There are no stdout/stderr logs available for the failed container
1777[WARNING] [io.quarkus.deployment.IsDockerWorking] No docker binary found or general error: java.lang.RuntimeException: Input/Output error while executing command.
有什么帮助吗?
谢谢
我用 docker 尝试了很多次,但它一团糟(因为 Docker 在 docker 中)。 我相信您有同样的问题,因为您的错误指出No docker binary found
。
我的解决方案会更容易,试试 Jib。 Quarkus 默认支持它,而且它更容易使用,见我的例子:
image: maven:latest
stages:
- build-package-dockerize
- deploy
before_script:
- apt-get update -qq
- apt-get install -y -qq build-essential libz-dev zlib1g-dev
build-package-dockerize:
stage: build-package-dockerize
script:
- mvn clean package
-DskipTests
-Dquarkus.profile=dev
# Instruct Quarkus to use Jib
-Dquarkus.container-image.builder=jib
# Don't forget to add token file to repo, otherwise you'll get http 401 when pushing
-Dquarkus.jib.to.auth.username=gitlab-ci-token
-Dquarkus.jib.to.auth.password=${CI_TOKEN_PASSWORD}
-Dquarkus.container-image.build=true
-Dquarkus.container-image.push=true
-Dquarkus.container-image.group=pss
-Dquarkus.container-image.tag=$CI_BUILD_REF
-Dquarkus.container-image.registry=$DOCKER_REGISTRY_AZURE_URL
-Dquarkus.container-image.username=$DOCKER_REGISTRY_AZURE_USERNAME
-Dquarkus.container-image.password=$DOCKER_REGISTRY_AZURE_PASSWORD
only:
- DEV
我现在将它用于多个项目,并且运行良好。
作为参考,您可以在此处找到每个 Jib 参数Quarkus Jib
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.