@@ -9,7 +9,7 @@ plugins {
99
1010group = " io.github.sgpublic"
1111// https://hub.docker.com/_/debian/tags
12- version = " 20240612 "
12+ version = " 20240722 "
1313
1414tasks {
1515 val tag = " mhmzx/poetry-runner"
@@ -50,36 +50,53 @@ tasks {
5050 }
5151 group = " docker"
5252 destFile = layout.buildDirectory.file(" docker-bookworm/Dockerfile" )
53- from(" debian:bookworm-$version " )
54- workingDir(" /app" )
55- copyFile(" ./*.sh" , " /" )
56- copyFile(" ./adb" , " /bin/adb" )
53+ from(Dockerfile .From (" debian:bookworm-$version " ).withStage(" builder" ))
54+ environmentVariable(mapOf (
55+ " POETRY_HOME" to " /usr/share/poetry" ,
56+ " POETRY_CACHE_DIR" to " /home/poetry-runner/.cache/poetry" ,
57+ " PYTHON_KEYRING_BACKEND" to " keyring.backends.null.Keyring" ,
58+ ))
5759 runCommand(listOf (
58- " apt-get update" ,
59- " apt-get install -y " +
60- " python3-pip " +
61- " python3-poetry " +
62- " python3-venv " +
63- " git " +
64- " sudo " +
65- " ffmpeg " +
66- " libfreetype6-dev " +
67- " python3-tk " +
68- " android-sdk-platform-tools-common" ,
69- " [ ! -f /usr/bin/python ] && ln -s /usr/bin/python3 /usr/bin/python" ,
70- " pip install pipx --break-system-packages" ,
71- " pipx run playwright install-deps" ,
72- " git config --global --add safe.directory /app" ,
73- " useradd -m -u 1000 poetry-runner" ,
74- " mkdir -p /home/poetry-runner/.cache" ,
75- " chown -R poetry-runner:poetry-runner /home/poetry-runner/.cache" ,
76- " echo \" # adb\" >> /etc/profile" ,
77- " echo \" export PATH=\\ \$ PATH:/bin/adb\" >> /etc/profile" ,
78- " usermod -aG plugdev poetry-runner" ,
79- " apt-get clean" ,
80- " pip cache purge" ,
81- " rm -rf /var/cache/* /var/tmp/* /home/poetry-runner/.cache/*" ,
60+ " apt-get update" ,
61+ " apt-get install -y " +
62+ " python3-pip " +
63+ " python3-venv " +
64+ " git " +
65+ " sudo " +
66+ " ffmpeg " +
67+ " curl " +
68+ " libfreetype6-dev " +
69+ " python3-tk " +
70+ " android-sdk-platform-tools-common" ,
71+ " [ ! -f /usr/bin/python ] && ln -s /usr/bin/python3 /usr/bin/python" ,
72+ " curl -sSL https://install.python-poetry.org | python3 - || { cat /poetry-installer-error-*.log; exit 1; }" ,
73+ " pip install playwright --break-system-packages" ,
74+ " playwright install-deps" ,
75+ " git config --global --add safe.directory /app" ,
76+ " useradd -m -u 1000 poetry-runner" ,
77+ " mkdir -p /home/poetry-runner/.cache" ,
78+ " chown -R poetry-runner:poetry-runner /home/poetry-runner/.cache" ,
79+ " echo \" # adb\" >> /etc/profile" ,
80+ " echo \" export PATH=\\ \$ PATH:\\ \$ ADB_HOME\" >> /etc/profile" ,
81+ " echo \" # poetry\" >> /etc/profile" ,
82+ " echo \" export PATH=\\ \$ PATH:\\ \$ POETRY_HOME/bin\" >> /etc/profile" ,
83+ " usermod -aG plugdev poetry-runner" ,
84+ " apt-get clean" ,
85+ " pip cache purge" ,
86+ " rm -rf /home/poetry-runner/.cache/* /usr/share/fonts/*" ,
8287 ).joinToString(" &&\\\n " ))
88+
89+ from(Dockerfile .From (" debian:bookworm-$version " ))
90+ environmentVariable(mapOf (
91+ " POETRY_HOME" to " /usr/share/poetry" ,
92+ " POETRY_CACHE_DIR" to " /home/poetry-runner/.cache/poetry" ,
93+ " PYTHON_KEYRING_BACKEND" to " keyring.backends.null.Keyring" ,
94+ " ADB_HOME" to " /usr/share/adb" ,
95+ ))
96+ copyFile(Dockerfile .CopyFile (" /" , " /" ).withStage(" builder" ))
97+ copyFile(" ./*.sh" , " /" )
98+ copyFile(" ./adb" , " /usr/share/adb" )
99+ workingDir(" /app" )
83100 volume(" /home/poetry-runner/.cache" )
84101 volume(" /app" )
85102 entryPoint(" bash" , " /docker-entrypoint.sh" )
@@ -110,11 +127,14 @@ tasks {
110127 }
111128 group = " docker"
112129 destFile = layout.buildDirectory.file(" docker-bullseye/Dockerfile" )
113- from(" debian:bullseye-$version " )
114- workingDir(" /app" )
115- copyFile(" ./*.sh" , " /" )
116- copyFile(" ./adb" , " /bin/adb" )
117- runCommand(listOf (
130+ from(Dockerfile .From (" debian:bullseye-$version " ).withStage(" builder" ))
131+ environmentVariable(mapOf (
132+ " POETRY_HOME" to " /usr/share/poetry" ,
133+ " POETRY_CACHE_DIR" to " /home/poetry-runner/.cache/poetry" ,
134+ " PYTHON_KEYRING_BACKEND" to " keyring.backends.null.Keyring" ,
135+ ))
136+ runCommand(
137+ listOf (
118138 " apt-get update" ,
119139 " apt-get install pkg-config -y" ,
120140 " apt-get install -y " +
@@ -123,12 +143,14 @@ tasks {
123143 " git " +
124144 " sudo " +
125145 " ffmpeg " +
146+ " curl " +
126147 " libfreetype6-dev " +
127148 " python3-tk " +
128149 " android-sdk-platform-tools-common" ,
129150 " [ ! -f /usr/bin/python ] && ln -s /usr/bin/python3 /usr/bin/python" ,
130- " pip install poetry pipx" ,
131- " pipx run playwright install-deps" ,
151+ " curl -sSL https://install.python-poetry.org | python3 - || { cat /poetry-installer-error-*.log; exit 1; }" ,
152+ " pip install playwright" ,
153+ " playwright install-deps" ,
132154 " git config --global --add safe.directory /app" ,
133155 " useradd -m -u 1000 poetry-runner" ,
134156 " mkdir -p /home/poetry-runner/.cache" ,
@@ -138,7 +160,20 @@ tasks {
138160 " apt-get clean" ,
139161 " pip cache purge" ,
140162 " rm -rf /var/cache/* /var/tmp/* /home/poetry-runner/.cache/*" ,
141- ).joinToString(" &&\\\n " ))
163+ ).joinToString(" &&\\\n " )
164+ )
165+
166+ from(Dockerfile .From (" debian:bullseye-$version " ))
167+ environmentVariable(mapOf (
168+ " POETRY_HOME" to " /usr/share/poetry" ,
169+ " POETRY_CACHE_DIR" to " /home/poetry-runner/.cache/poetry" ,
170+ " PYTHON_KEYRING_BACKEND" to " keyring.backends.null.Keyring" ,
171+ " ADB_HOME" to " /usr/share/adb" ,
172+ ))
173+ copyFile(Dockerfile .CopyFile (" /" , " /" ).withStage(" builder" ))
174+ copyFile(" ./*.sh" , " /" )
175+ copyFile(" ./adb" , " /bin/adb" )
176+ workingDir(" /app" )
142177 volume(" /home/poetry-runner/.cache" )
143178 volume(" /app" )
144179 entryPoint(" bash" , " /docker-entrypoint.sh" )
@@ -178,9 +213,9 @@ tasks {
178213 }
179214}
180215
181- fun findEnv (name : String ): String {
182- return findProperty(name)?.toString()?.takeIf { it.isNotBlank() }
183- ? : System .getenv(name.replace(" ." , " _" ).uppercase())
216+ fun findEnv (name : String ) = provider {
217+ findProperty(name)?.toString()?.takeIf { it.isNotBlank() }
218+ ? : System .getenv(name.replace(" ." , " _" ).uppercase())
184219}
185220
186221docker {
0 commit comments