SSQQ
V2EX  ›  Docker

怎么修改容器内下载的文件所属用户

  •  
  •   SSQQ · Aug 18, 2022 · 1579 views
    This topic created in 1384 days ago, the information mentioned may be changed or developed.
    FROM openjdk:17.0.2-jdk-oracle
    EXPOSE 8083
    ARG JAR_FILE
    VOLUME ["/data"]
    VOLUME ["/config"]
    ADD ./sp-0.0.1-SNAPSHOT.jar  /app.jar
    ENTRYPOINT ["java", "-jar","/app.jar"]
    

    这个是个文件下载工具 下载出来的文件想给指定的用户权限

    我看别人的 docker 运行时候 添 UID 和 GID 就可以这个是怎么实现的呢

    就像这样 docker run -d -e Gid=100 -e UID=100 ....... 像弄成这样的 那位兄弟会的给说说

    6 replies    2022-08-22 08:59:04 +08:00
    Maxwe11
        1
    Maxwe11  
       Aug 18, 2022
    没搞过,直接 docker exec bash 对文件赋权呢?
    AoEiuV020CN
        2
    AoEiuV020CN  
       Aug 18, 2022
    dockerfile 有 USER 命令可以指定用于执行后续命令的用户,
    但指定的是 docker 镜像中的用户,不存在的话首先要 useradd ,
    应该是没有特别容易的方法直接指定 uid,
    只是下载一个文件或者一个目录的话考虑下载之后 chmod ,
    AoEiuV020CN
        3
    AoEiuV020CN  
       Aug 18, 2022   ❤️ 1
    搜了个大概可行的代码,总之就是先添加用户再指定用户,具体 id 走参数传入,
    https://stackoverflow.com/a/44683248

    FROM ubuntu:xenial-20170214
    ARG UNAME=testuser
    ARG UID=1000
    ARG GID=1000
    RUN groupadd -g $GID -o $UNAME
    RUN useradd -m -u $UID -g $GID -o -s /bin/bash $UNAME
    USER $UNAME
    CMD /bin/bash

    docker build --build-arg UID=$(id -u) --build-arg GID=$(id -g) \
    -f bb.dockerfile -t testimg .
    lovelylain
        4
    lovelylain  
       Aug 18, 2022 via Android
    @AoEiuV020CN 要是容器内只有一个 go 程序没有 useradd 命令呢,怎么以非 root 用户运行?
    julyclyde
        5
    julyclyde  
       Aug 19, 2022
    @jobmailcn 里面只有一个 go 程序,还有所谓 root 吗?你连 docker exec 都执行不了吧
    ragnaroks
        6
    ragnaroks  
       Aug 22, 2022
    PGID PUID 是配合 supervisor 使用的,参考 https://hub.docker.com/r/linuxserver/qbittorrent ,对于自己创建的镜像,最简单的办法是指定此容器用户

    FROM openjdk:17.0.2-jdk-oracle
    EXPOSE 8083
    ARG JAR_FILE
    VOLUME ["/data"]
    VOLUME ["/config"]
    ADD ./sp-0.0.1-SNAPSHOT.jar /app.jar
    USER user1
    ENTRYPOINT ["java", "-jar","/app.jar"]
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   978 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 20:37 · PVG 04:37 · LAX 13:37 · JFK 16:37
    ♥ Do have faith in what you're doing.