Преобразовать проверенный в Unix dockerfile в Windows, команда RUN не выполнена из-за отказа в разрешении - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть Dockerfile, как показано ниже, протестировано для работы в системах Unix. Мой клиент пытается использовать то же самое в Windows, но на шаге RUN ./gradlew clean deployNodes появляется ошибка Permission denied.

Как настроить 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: В доступе отказано

1 Ответ

0 голосов
/ 09 ноября 2019

попробуйте добавить:

WORKDIR /home/gradle/src
RUN apt-get update && apt-get install -y dos2unix
RUN dos2unix gradlew
RUN chmod +x gradlew
RUN ./gradlew clean deployNodes
...