Installed a new debian server, installed docker, but then now i have a problem with permissions on passed directories.

On the previous server, the uid/gids inside the docker container match the uid/gid on the real server.

Root is 0, www-data is 33, and so on.

On this new server, instead, files owned by root (0) in the container are translated to 1000 on the server, www-data (33) is 100032, and so on (+1000 appended to the uid)

Is this normal or did I misconfigure something? On the previous server I was running everything as root (the interactive user was root), and i would like to avoid that

  • 𝘋𝘪𝘳𝘬
    link
    fedilink
    English
    arrow-up
    1
    ·
    11 months ago

    Yep! The names are basically just a convenient way for referencing a user or group ID.

    Under normal circumstances you should let the system decide what IDs to use, but in the confined environment of a docker container you can do pretty much what you want.

    If you really, really, really want to create a user and group just set the IDs manually:

    FROM alpine:latest
    COPY myscript.sh /app/myscript.sh
    RUN addgroup -g 10001 mycoolgroup && adduser -D -u 10000 -G mycoolgroup mycooluser
    USER mycooluser:mycoolgroup
    CMD ["sh", "/app/myscript.sh"]
    

    Just make sure to stay at or above 10000 so you won’t accidentally re-use IDs that are already defined on the host.