Skip to content

Pattern for basic image that matches your userid/groupid at runtime

License

Notifications You must be signed in to change notification settings

Graham42/mapped-uid-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mapped-uid-docker container

A basic container that matches your userid / groupid inside the container at runtime.

The Problem

There are times when you want to container to run and generate some files, then you discover when you leave the container that those files are owned by root!! For me this often happens if I want to use a container as part of my dev workflow to build/compile some files.

You could modify the container when it's built to have a user with the same uid/gid as yourself, but then we lose on portability. There's an extensive thread discussing this topic here moby/moby#2259

This container solves the problem by modifying the user in the container at runtime, based on a provided bind mount.

Usage

This container requires you to mount a file belonging to your user to /tim. Recommend doing this with mktemp

docker run --volume `mktemp`:/tim ...

Example

Let's say you want to run a container to do some process and output a file in the current directory. Do this with:

docker run --rm -it \
    -v `mktemp`:/tim:ro \
    -v `pwd`:/code \
    -w /code \
    graham42/mapped-uid-docker \
    echo "did it work" > somefile

You should see now that this file belongs you, not root.

ls -l somefile
# -rw-rw-r-- 1 youruser youruser 0 Sep 12 14:29 somefile

License

MIT License

Copyright (c) 2017 Graham McGregor

See LICENSE file.

About

Pattern for basic image that matches your userid/groupid at runtime

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published