Skip to content

Commit 14155cd

Browse files
authored
Merge pull request #1961 from lwronski/docker-native-image
Allow to package native graalVM image using docker image with scala-cli
2 parents 46464f6 + 08ec726 commit 14155cd

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed
Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1-
FROM alpine:3.14.2
2-
RUN apk update && apk add gcompat clang build-base
1+
FROM debian:stable-slim
2+
RUN apt update && apt install build-essential libz-dev clang -y
33
ADD scala-cli /usr/bin/
44
RUN \
5-
echo "println(1)" | scala-cli -S 3 - -v -v -v -v && \
6-
echo "println(1)" | scala-cli -S 2.13 - -v -v -v -v && \
7-
echo "println(1)" | scala-cli -S 2.12 - -v -v -v -v
5+
echo "println(1)" | scala-cli -S 3 - -v -v -v && \
6+
echo "println(1)" | scala-cli -S 2.13 - -v -v -v && \
7+
echo "println(1)" | scala-cli -S 2.12 - -v -v -v \
8+
RUN \
9+
echo "println(1)" | scala-cli --power package --native _.sc --force && \
10+
echo "println(1)" | scala-cli --power package --native-image _.sc --force
811
ENTRYPOINT ["scala-cli"]

modules/integration/docker/src/test/scala/scala/cli/integration/RunDockerTests.scala

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class RunDockerTests extends munit.FunSuite {
4444
}
4545
}
4646

47-
if (!imageName.contains(slimScalaCliImage))
47+
if (!imageName.contains(slimScalaCliImage)) {
4848
test("package simple app with native in docker") {
4949
val fileName = "simple.sc"
5050
val inputs = TestInputs(
@@ -61,4 +61,21 @@ class RunDockerTests extends munit.FunSuite {
6161
expect(procPackage.exitCode == 0)
6262
}
6363
}
64+
test("package simple app with graalVM in docker") {
65+
val fileName = "simple.sc"
66+
val inputs = TestInputs(
67+
os.rel / fileName -> """println("Hello")"""
68+
)
69+
inputs.fromRoot { root =>
70+
val cmdPackage = Seq[os.Shellable](
71+
// format: off
72+
"docker", "run", "--rm", termOpt, "-v", s"$root:/data", "-w", "/data", ciOpt,
73+
imageName, "--power", "package", "--native-image", fileName, "-o", "Hello"
74+
// format: on
75+
)
76+
val procPackage = os.proc(cmdPackage).call(cwd = root, check = false)
77+
expect(procPackage.exitCode == 0)
78+
}
79+
}
80+
}
6481
}

0 commit comments

Comments
 (0)