将在Unix中测试的dockerfile转换为Windows,由于权限被拒绝,RUN命令失败

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

我有一个Dockerfile,如下所示,经过测试可在Unix系统上工作。我的客户端尝试在Windows上使用相同的命令,但在Permission denied步骤上出现RUN ./gradlew clean deployNodes错误。

如何调整Dockerfile,使其也可以在Windows系统上使用?

# Get java8
FROM openjdk:8-jre-slim
# Get gradle
FROM gradle:4.7.0-jdk8-alpine AS build
# Start as root to update the alpine image to install bash
USER root
# Add bash
RUN apk update && apk add bash
# Move the code, as owner
COPY --chown=gradle:gradle . /home/gradle/src
# Assign a working directory 
WORKDIR /home/gradle/src
# Run clean build
RUN ./gradlew clean deployNodes
# Expose ports for the services
EXPOSE 8080 5005 5006 5007 5008 5009 10001 10070
# Run the application
ENTRYPOINT ["build/nodes/runnodes"]

编辑:

错误在:

/bin/sh: ./gradlew: Permission denied
The command '/bin/sh -C ./gradlew clean deploynodes' returned a non-zero code: 126

在此线程之后,我将gradlew设置为可执行文件:gradlew: Permission Denied

java docker gradle dockerfile docker-for-windows
1个回答
0
投票

尝试添加:

WORKDIR /home/gradle/src
RUN apt-get update && apt-get install -y dos2unix
RUN dos2unix gradlew
RUN chmod +x gradlew
RUN ./gradlew clean deployNodes
© www.soinside.com 2019 - 2024. All rights reserved.