mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-05-15 00:57:02 +02:00
Edit Docker files
- Moving folders around - Setting up docker-compose for Django
This commit is contained in:
parent
4856e28290
commit
3c725ce1ac
2 changed files with 16 additions and 11 deletions
56
src/docker_entrypoint.py
Normal file
56
src/docker_entrypoint.py
Normal file
|
@ -0,0 +1,56 @@
|
|||
#! /usr/bin/env python
|
||||
|
||||
"""
|
||||
This is a Docker entrypoint that configures the container to run
|
||||
as the same uid of the user on the host container, rather than
|
||||
the Docker default of root. Aside from following security best
|
||||
practices, this makes it so that any files created by the Docker
|
||||
container are also owned by the same user on the host system.
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
import pwd
|
||||
import subprocess
|
||||
|
||||
HOST_UID = os.stat("/app").st_uid
|
||||
HOST_USER = "james"
|
||||
|
||||
|
||||
def does_username_exist(username):
|
||||
try:
|
||||
pwd.getpwnam(username)
|
||||
return True
|
||||
except KeyError:
|
||||
return False
|
||||
|
||||
|
||||
def does_uid_exist(uid):
|
||||
try:
|
||||
pwd.getpwuid(uid)
|
||||
return True
|
||||
except KeyError:
|
||||
return False
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
if HOST_UID != os.geteuid():
|
||||
if not does_uid_exist(HOST_UID):
|
||||
username = HOST_USER
|
||||
while does_username_exist(username):
|
||||
username += "0"
|
||||
home_dir = "/home/%s" % username
|
||||
subprocess.check_call(
|
||||
[
|
||||
"useradd",
|
||||
"-d",
|
||||
home_dir,
|
||||
"-m",
|
||||
username,
|
||||
"-u",
|
||||
str(HOST_UID),
|
||||
]
|
||||
)
|
||||
os.environ["HOME"] = "/home/%s" % pwd.getpwuid(HOST_UID).pw_name
|
||||
os.setuid(HOST_UID)
|
||||
os.execvp(sys.argv[1], sys.argv[1:])
|
Loading…
Add table
Add a link
Reference in a new issue