Skip to content

Commit 7fa666c

Browse files
committed
feat: try reducing image size
1 parent 14a5fe4 commit 7fa666c

1 file changed

Lines changed: 75 additions & 40 deletions

File tree

build.gradle.kts

Lines changed: 75 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ plugins {
99

1010
group = "io.github.sgpublic"
1111
// https://hub.docker.com/_/debian/tags
12-
version = "20240612"
12+
version = "20240722"
1313

1414
tasks {
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

186221
docker {

0 commit comments

Comments
 (0)