当前位置: 首页 > 知识库问答 >
问题:

Bitbucket管道-在OpenJDK:11和Gradle:6.5容器中运行sh脚本时出错

钱毅
2023-03-14

我有一个Spring Boot Kotlin Gradle项目,我试图运行一个管道来使用docker-compose来运行我的CI测试来构建我的项目,但我不能,因为docker-compose不存在

因此,在网上的几篇文章之后,我创建了一个dependencies.sh文件,在gradle之前运行,该文件将为我的测试安装docker-compose,但我得到了错误

./dependencies.sh:6:./dependencies.sh:apk:未找到

我写了另一个关于使用testcontainers的bitbucket管道的问题,但是到目前为止没有人能帮我,所以我改变了aproach

bitbucket管道上嵌入式容器测试Spring Boot失败

有人能帮我用docker-compose为我的测试创建一个bitbucket-pipelines.yml吗?到目前为止,我得到的是:

image: openjdk:11

definitions:
  caches:
    gradleall: ~/.gradle
  services:
    docker:
      memory: 2048
  steps:
    - step: &Build
        name: Build and Test
        artifacts:
          - build/libs/**
          - build/reports/**
        script:
          - chmod +x dependencies.sh
          - ./dependencies.sh
          - bash ./gradlew clean build --stacktrace
        services:
          - docker

pipelines:
  default:
    - step: *Build
#!/usr/bin/env sh

set -eu

# Add python pip and bash
apk add --no-cache py-pip bash

# Install docker-compose via pip
pip install --no-cache-dir docker-compose
docker-compose -v

共有1个答案

越涛
2023-03-14

看起来主要的OpenJDK Docker图像是基于Debian的,它使用apt-get而不是apk

您可以先尝试image:openjdk:11-alpine而不是image:openjdk:11;这应该允许您当前的安装过程工作,但是考虑到Docker页面上的以下警告,我认为最好使用他们的Debian映像,而不是他们的Alpine映像:

Alpine的OpenJDK端口不在OpenJDK支持的版本中,因为它不在主线代码库中。

不过,我不是OpenJDK方面的专家。

 类似资料:
  • 问题内容: 我能够运行以下shell脚本,但无法从Jenkins管道代码运行。 尝试1。 输出: 尝试2: 尝试过sh“”“ 输出 : 美元符号后的非法字符串体字符;解决方案:要么转义文字美元符号,要么将值表达式括起来 有人能帮我吗? 问题答案: 这应该工作。 您还需要在调用下面的新subshel​​l时转义$

  • PS:如果您想要Postgresql容器中的日志:

  • 在docker文件中运行sh脚本时,出现以下错误: /上传。上海:5:/上载sh:sudo:找不到/上载sh:21: /上载sh:换人不好 DockerFile 有什么想法吗?

  • 问题内容: 我正在尝试创建用于设置Docker容器的Shell脚本。我的脚本文件如下所示: 运行此脚本文件将在新调用的bash中运行容器。 现在,我需要运行一个脚本文件(test.sh),该文件已经位于上述给定的shell脚本的容器内(例如:cd /path/to/test.sh && ./test.sh),该怎么做? 问题答案: 您可以使用以下命令在正在运行的容器中运行命令: 并从bash会话运

  • Azure文档(https://docs.microsoft.com/en-us/Azure/devops/pipelines/tasks/build/docker?view=azure-devops)没有指定如何在Azure pipeline中运行docker容器。我们可以使用docker@2任务来构建/推送docker图像,但它没有运行容器的命令。通过查看旧版本Docker task的源代码,

  • 我在容器中运行空手道UI测试时遇到了问题。我可以清楚地在本地运行测试。但是我在容器中运行的测试显示“错误com.intuit.karate-驱动配置/启动失败:”我使用的驱动配置如下 配置驱动程序={type:'chrome',headless:true,showDriverLog:true,addOptions:['--incognito'],httpConfig:{readTimeout:12