[英]Gitlab pipeline error when building quarkus project and dockerizing it
I wrote a simple pipeline in gitlab to build a quarkus project, to dockerize it and to push the final image to a registry.我在 gitlab 中编写了一个简单的管道来构建一个 quarkus 项目,将其 docker 化并将最终图像推送到注册表。 Here it is:
这里是:
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
When the pipe runs it returns error in ryuk container deployment:当 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.
Any help?有什么帮助吗?
Thanks谢谢
I tried many times doing it with docker but it was a mess (cause Docker in docker).我用 docker 尝试了很多次,但它一团糟(因为 Docker 在 docker 中)。 I believe you have the same problem because your error states that
No docker binary found
.我相信您有同样的问题,因为您的错误指出
No docker binary found
。
My solution would be easier, try with Jib.我的解决方案会更容易,试试 Jib。 Quarkus supports it by default and it's much easier to use, see my example:
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
I'm using it right now for multiple projects, and its working perfectly.我现在将它用于多个项目,并且运行良好。
For reference, you can find every Jib params here Quarkus Jib作为参考,您可以在此处找到每个 Jib 参数Quarkus Jib
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.