首页 > 解决方案 > 使用 docker-compose 上的 Dockerfile 使用 chown 拒绝用户权限

问题描述

我正在尝试在 docker-compose 中安装一个卷。但似乎我的用户没有使用音量的权限。:/

我的 dockerfile 是:

FROM openjdk:8u181-jdk-slim

ENV HOME /app
ENV CONFIG_PATH $HOME/config
ENV DATA_PATH $HOME/data
ENV LOG_PATH $HOME/log

RUN addgroup --gid 1001 myuser \
    && adduser --uid 1001 --gid 1001 --home $HOME --shell /bin/bash \
        --gecos "" --no-create-home --disabled-password myuser \
    && mkdir -p $CONFIG_PATH $DATA_PATH $LOG_PATH \
    && chown -R myuser:myuser $HOME \
    && chmod -R g=u $HOME \
    && chmod +x $HOME/*


RUN apt-get update \
    && apt-get install -y curl \
    && apt-get clean

VOLUME $CONFIG_PATH $DATA_PATH $LOG_PATH

USER myuser:myuser

EXPOSE 7777
EXPOSE 8080

HEALTHCHECK --interval=1m --timeout=10s --start-period=2m \
    CMD curl -f http://localhost:7777/health || exit 1

COPY --chown=myuser my-service-*.jar $HOME/my-service.jar

ENTRYPOINT ["/bin/bash", "-c", "java $JAVA_OPTS -jar $HOME/my-service.jar $0 $@"]

我的 docker-compose 文件是:


volumes:
    my-service_stream:

    my-service:
        image: my-service-image
        networks:
            - internal
        env_file:
            - config/common.env
        volumes:
            - my-service_stream:/app/data/state

无法使用 myuser 也无法为此用户挂载:/。我不能使用并且我的用户没有写该卷的权限。

我尝试将用户添加到我的 docker-compose 文件中

    user: "1001:1001"

但没有任何改变。

标签: docker-composedockerfilechown

解决方案


推荐阅读