使用 karatelabs/karate-chrome 将空手道部署到容器中时出错

问题描述 投票:0回答:1

我正在尝试使用 karatelabs/karate-chrome 图像将我的空手道项目部署到容器中:

在我的 POM.XML 中,我有:Java 21、Karate 1.4.1、Maven 3.6.0

我的 Dockerfile(调用 karate_runner.sh)

FROM karatelabs/karate-chrome
# maven:3.9.6-eclipse-temurin-21-alpine

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

#COPY settings.xml /usr/share/maven/ref/
COPY pom.xml /tmp/pom.xml
COPY . /usr/src/app

RUN ["chmod", "+x", "/usr/src/app/maven_runner.sh"]
RUN ulimit -c -l
RUN mvn -B -f /tmp/pom.xml -s /usr/share/maven/ref/settings-docker.xml prepare-package -DskipTests

#Execute shell script from the docker file! This shell script will invoke karate parallel runner class
CMD ["sh","/usr/src/app/karate_runner.sh"]

Karate_runner.sh 文件

根据https://github.com/karatelabs/karate/blob/master/build-docker.sh

我遇到了以下问题。

Issue

如果您能指导我如何解决这些问题,那就太好了。

karate
1个回答
0
投票

几杯茶之后,我意识到我实际上可以使用普通的 JDK 21 映像并手动安装本地使用的相同版本的 maven。使用此图像,我现在可以成功运行我的并行运行器类。

Dockerfile

# FROM syntax indicates type of docker image we will use. 

FROM openjdk:21-jdk 

 
# Install maven 

ARG MAVEN_VERSION=3.9.8 

ARG BASE_URL=https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries 


RUN mkdir -p /usr/share/maven /usr/share/maven/ref \ 

&& curl -fsSL -o /tmp/apache-maven.tar.gz ${BASE_URL}/apache-maven-${MAVEN_VERSION}-bin.tar.gz \ 

&& tar -xzf /tmp/apache-maven.tar.gz -C /usr/share/maven --strip-components=1 \ 

&& rm -f /tmp/apache-maven.tar.gz \ 

&& ln -s /usr/share/maven/bin/mvn /usr/bin/mvn 

ENV MAVEN_HOME=/usr/share/maven 

 
RUN mkdir -p /usr/src/app 

WORKDIR /usr/src/app 

 
COPY pom.xml /tmp/pom.xml 

# Copy an entire project into /usr/src/app 

COPY . /usr/src/app 

 
#This is to provide maven_runner.sh with executable permission 

RUN ["chmod", "+x", "/usr/src/app/maven_runner.sh"] 

RUN ulimit -c -l 

 
# Instruct Maven to download all dependencies in advance 

RUN mvn -B -f /tmp/pom.xml prepare-package -DskipTests 

 
# This CMD - command part will be executed upon Docker Run command 

CMD ["sh","/usr/src/app/maven_runner.sh"] 

© www.soinside.com 2019 - 2024. All rights reserved.