name: "python run script"

mode: ONCE
hostname: "python"
log_level: ERROR
time_limit: {TIMEOUT}

rlimit_as: 4096
rlimit_cpu: 1000
rlimit_fsize: 1000
rlimit_nofile: 10000

cwd: "/tmp"

clone_newnet: false
clone_newuser: {CLONE_NEWUSER}

skip_setsid: true
keep_caps: false
keep_env: true
mount_proc: true

mount {
    src: "/bin"
    dst: "/bin"
	is_bind: true
}

mount {
    src: "/lib"
    dst: "/lib"
	is_bind: true
}


mount {
    src: "/lib64"
    dst: "/lib64"
	is_bind: true
    mandatory: false
}


mount {
    src: "/usr"
    dst: "/usr"
	is_bind: true
}

mount {
	src: "/dev/null"
	dst: "/dev/null"
	is_bind: true
	rw: true
}

{TMP_MOUNT_BLOCK}

mount {
    src: "{JOB_DIR}/{MAIN}.py"
    dst: "/tmp/{MAIN}.py"
    is_bind: true
}

mount {
    src: "{JOB_DIR}/loader.py"
    dst: "/tmp/loader.py"
    is_bind: true
    mandatory: false
}

mount {
    src: "{JOB_DIR}/wrapper.py"
    dst: "/tmp/wrapper.py"
    is_bind: true
}

mount {
    src: "{JOB_DIR}/args.json"
    dst: "/tmp/args.json"
    is_bind: true
    rw: true
}

mount {
    src: "{JOB_DIR}/checkpoint.json"
    dst: "/tmp/checkpoint.json"
    is_bind: true
    mandatory: false
}

mount {
    src: "{JOB_DIR}/result.json"
    dst: "/tmp/result.json"
    rw: true
    is_bind: true
}

mount {
    src: "/etc"
    dst: "/etc"
	is_bind: true
}

# Container runtimes bind exactly these 3 files as separate submounts over
# /etc; nsjail's ro remount of /etc is non-recursive so they stay writable.
# Load-bearing -- do not remove as redundant with the /etc bind above.
mount {
    src: "/etc/resolv.conf"
    dst: "/etc/resolv.conf"
    is_bind: true
    mandatory: false
}

mount {
    src: "/etc/hosts"
    dst: "/etc/hosts"
    is_bind: true
    mandatory: false
}

mount {
    src: "/etc/hostname"
    dst: "/etc/hostname"
    is_bind: true
    mandatory: false
}

mount {
    dst: "/dev/shm"
    fstype: "tmpfs"
    rw: true
    is_bind: false
}

mount {
    src: "/dev/random"
    dst: "/dev/random"
    is_bind: true
}

mount {
    src: "{PY_INSTALL_DIR}"
    dst: "{PY_INSTALL_DIR}"
    is_bind: true
}

mount {
    src: "/dev/urandom"
    dst: "/dev/urandom"
    is_bind: true
}

mount {
    src: "{GLOBAL_SITE_PACKAGES}"
    dst: "{GLOBAL_SITE_PACKAGES}"
    is_bind: true
   	mandatory: false
}

{SHARED_MOUNT}

{SHARED_DEPENDENCIES}

iface_no_lo: true

envar: "LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH"
envar: "PYTHONPATH={ADDITIONAL_PYTHON_PATHS}"
envar: "HOME=/tmp"

mount {
    src: "{TRACING_PROXY_CA_CERT_PATH}"
    dst: "{TRACING_PROXY_CA_CERT_PATH}"
    is_bind: true
    mandatory: false
}

#{DEV}
