Spaces:
Running
Running
alessandro trinca tornidor
commited on
Commit
•
8c1771d
1
Parent(s):
fcb8c81
[refactor] use entrypoint.sh as CMD Dockerfile, add FOLDERS_MAP env file to dynamic folder creation
Browse files- Dockerfile +1 -1
- scripts/create_folders_and_variables_if_not_exists.py +38 -0
- scripts/entrypoint.sh +7 -44
Dockerfile
CHANGED
@@ -184,4 +184,4 @@ RUN ls -l ${FASTAPI_STATIC}/ || true
|
|
184 |
RUN ls -l ${FASTAPI_STATIC}/dist || true
|
185 |
RUN ls -l ${FASTAPI_STATIC}/node_modules || true
|
186 |
|
187 |
-
CMD ["
|
|
|
184 |
RUN ls -l ${FASTAPI_STATIC}/dist || true
|
185 |
RUN ls -l ${FASTAPI_STATIC}/node_modules || true
|
186 |
|
187 |
+
CMD ["/var/task/scripts/entrypoint.sh"]
|
scripts/create_folders_and_variables_if_not_exists.py
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json
|
2 |
+
import logging
|
3 |
+
import os
|
4 |
+
from pathlib import Path
|
5 |
+
|
6 |
+
|
7 |
+
def stats_pathname(pathname: Path | str):
|
8 |
+
current_pathname = Path(pathname)
|
9 |
+
return current_pathname.is_dir()
|
10 |
+
|
11 |
+
|
12 |
+
def create_folder_if_not_exists(pathname: Path | str):
|
13 |
+
current_pathname = Path(pathname)
|
14 |
+
try:
|
15 |
+
print(f"Pathname exists? {current_pathname.exists()}, That's a folder? {current_pathname.is_dir()}...")
|
16 |
+
logging.info(f"Pathname exists? {current_pathname.exists()}, That's a folder? {current_pathname.is_dir()}...")
|
17 |
+
current_pathname.unlink(missing_ok=True)
|
18 |
+
except PermissionError as pe:
|
19 |
+
print(f"permission denied on removing pathname before folder creation:{pe}.")
|
20 |
+
logging.error(f"permission denied on removing pathname before folder creation:{pe}.")
|
21 |
+
|
22 |
+
print(f"Creating pathname: {current_pathname} ...")
|
23 |
+
logging.info(f"Creating pathname: {current_pathname} ...")
|
24 |
+
current_pathname.mkdir(mode=0o770, parents=True, exist_ok=True)
|
25 |
+
|
26 |
+
print(f"assertion: pathname exists and is a folder: {current_pathname} ...")
|
27 |
+
logging.info(f"assertion: pathname exists and is a folder: {current_pathname} ...")
|
28 |
+
assert current_pathname.is_dir()
|
29 |
+
|
30 |
+
|
31 |
+
if __name__ == '__main__':
|
32 |
+
folders_string = os.getenv("FOLDERS_MAP")
|
33 |
+
folders_dict = json.loads(folders_string)
|
34 |
+
for folder_env_ref, folder_env_path in folders_dict.items():
|
35 |
+
print(f"folder_env_ref:{folder_env_ref}, folder_env_path:{folder_env_path}.")
|
36 |
+
logging.info(f"folder_env_ref:{folder_env_ref}, folder_env_path:{folder_env_path}.")
|
37 |
+
create_folder_if_not_exists(folder_env_path)
|
38 |
+
assert os.getenv(folder_env_ref) == folder_env_path
|
scripts/entrypoint.sh
CHANGED
@@ -2,63 +2,26 @@
|
|
2 |
|
3 |
WORKDIR="/var/task"
|
4 |
XDG_CACHE_HOME="/data"
|
5 |
-
PROJECT_ROOT_FOLDER=${XDG_CACHE_HOME}
|
6 |
-
MPLCONFIGDIR=${XDG_CACHE_HOME}/.cache/matplotlib
|
7 |
-
TRANSFORMERS_CACHE=${XDG_CACHE_HOME}/.cache/transformers
|
8 |
-
FASTAPI_STATIC=${WORKDIR}/static
|
9 |
-
VIS_OUTPUT=${XDG_CACHE_HOME}/vis_output
|
10 |
|
11 |
-
echo "
|
12 |
-
ls -ld ${WORKDIR}
|
13 |
-
ls -lA ${WORKDIR}
|
14 |
-
cd ${WORKDIR}
|
15 |
-
|
16 |
-
ln -s ${FASTAPI_STATIC} .
|
17 |
-
echo "WORKDIR content: ${WORKDIR}, after creating the FASTAPI_STATIC symlink ..."
|
18 |
-
ls -ld ${WORKDIR}
|
19 |
-
ls -lA ${WORKDIR}
|
20 |
-
ls -lA ${WORKDIR}/static
|
21 |
-
|
22 |
-
echo "XDG_CACHE_HOME content: ${XDG_CACHE_HOME}, before creating the folders ..."
|
23 |
-
ls -ld ${XDG_CACHE_HOME}/
|
24 |
-
ls -l ${XDG_CACHE_HOME}/
|
25 |
-
|
26 |
-
mkdir -p ${XDG_CACHE_HOME}/.cache
|
27 |
-
mkdir -p ${MPLCONFIGDIR}
|
28 |
-
mkdir -p ${TRANSFORMERS_CACHE}
|
29 |
-
mkdir -p ${FASTAPI_STATIC}
|
30 |
-
mkdir -p ${VIS_OUTPUT}
|
31 |
-
chmod 770 -R ${FASTAPI_STATIC}
|
32 |
-
chmod 770 -R ${VIS_OUTPUT}
|
33 |
-
chmod 770 -R ${XDG_CACHE_HOME}/.cache
|
34 |
-
|
35 |
-
echo "XDG_CACHE_HOME content: ${XDG_CACHE_HOME}, after creating the folders ..."
|
36 |
-
ls -ld ${XDG_CACHE_HOME}/
|
37 |
-
ls -lA ${XDG_CACHE_HOME}/
|
38 |
-
export WORKDIR
|
39 |
-
export XDG_CACHE_HOME
|
40 |
-
export MPLCONFIGDIR
|
41 |
-
export TRANSFORMERS_CACHE
|
42 |
-
export FASTAPI_STATIC
|
43 |
-
export VIS_OUTPUT
|
44 |
-
export PROJECT_ROOT_FOLDER
|
45 |
|
46 |
source ${WORKDIR}/venv/bin/activate
|
47 |
|
48 |
which python
|
49 |
python --version
|
|
|
50 |
|
51 |
free -m
|
52 |
-
which nvcc
|
53 |
-
nvcc -V
|
54 |
-
which nvidia-smi
|
55 |
-
nvidia-smi
|
56 |
pip list
|
57 |
|
58 |
which uvicorn
|
59 |
ls -l ${WORKDIR}/venv/bin/uvicorn
|
60 |
|
61 |
-
df -h / /
|
62 |
|
63 |
echo "WORKDIR - /var/task"
|
64 |
ls -l ${WORKDIR}
|
|
|
2 |
|
3 |
WORKDIR="/var/task"
|
4 |
XDG_CACHE_HOME="/data"
|
|
|
|
|
|
|
|
|
|
|
5 |
|
6 |
+
echo "FOLDERS_MAP:${FOLDERS_MAP} ..."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
8 |
source ${WORKDIR}/venv/bin/activate
|
9 |
|
10 |
which python
|
11 |
python --version
|
12 |
+
python ${WORKDIR}/script/create_folders_and_variables_if_not_exists.py
|
13 |
|
14 |
free -m
|
15 |
+
which nvcc || true
|
16 |
+
nvcc -V || true
|
17 |
+
which nvidia-smi || true
|
18 |
+
nvidia-smi || true
|
19 |
pip list
|
20 |
|
21 |
which uvicorn
|
22 |
ls -l ${WORKDIR}/venv/bin/uvicorn
|
23 |
|
24 |
+
df -h / /home ${WORKDIR} ${XDG_CACHE_HOME}
|
25 |
|
26 |
echo "WORKDIR - /var/task"
|
27 |
ls -l ${WORKDIR}
|