Задать вопрос

Как в Docker запустить процессы из под текущего пользователя?

Здравствуйте, используя Docker столкнулся с проблемой:
Указанные в docker-compose volues имеют владельца и группу root, вот пример docker-compose.yml
service:
  image: java/service
  build:
      context: .
      dockerfile: .docker/java.Dockerfile
      args:
        - UID
        - GID
    command: "java -jar file-service/file-service-rest/target/file-service.jar"
    restart: always
    user: "${UID}:${GID}"
    ports:
      - 4592:4592
    volumes:
      - ./:/usr/src/app
      - ./file-service/file-service-rest/target/classes/image:/usr/src/app/image
    environment:
      JAVA_OPTS: -Dspring.config.location=file-service/settings.properties
    healthcheck:
      test: curl -f http://localhost:4592/check


java.Dockerfile выглядит следующим образом:
FROM openjdk:17

ARG UID=1000
ARG GID=1000

ENV UID=${UID}
ENV GID=${GID}

RUN groupadd --gid $GID node \
  && useradd --uid $UID --gid node --shell /bin/bash --create-home node

USER node

WORKDIR /usr/src/app
  
ENTRYPOINT ["java"]


.env файл:
UID=1001
GID=1001


После выполнения команды docker-composer up -d --build создается директория image с правами root
  • Вопрос задан
  • 345 просмотров
Подписаться 2 4 комментария
Подписчики вопроса 2 К ответам на вопрос (0)