Skip to content

Commit cb77651

Browse files
authored
Fixing amd64 static docker image and min glibc to 2.15 (#494)
* [Gradle Release Plugin] - new version commit: '3.21.2-snapshot'. * Fixing amd64 static docker image * setup image test * fixing tmp dir * fixing tmp dir * setup debian 10 slim again for amd64 * creating hidden command to create tmp dir * creating tmp dir at static docker image * release notes * update source list * downgrading image builder * simplify * fixing unmet dep * fixing unmet dep * fixing unmet dep * configuring aarch builder with debian stretch 9 * reconfigure cd * change create-tmp-dir impl * cd * fixing test - port conflicting happening * cd
1 parent 7147f5e commit cb77651

File tree

14 files changed

+125
-7
lines changed

14 files changed

+125
-7
lines changed

.github/workflows/actions-deploy.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ on:
55
branches:
66
- master
77

8-
98
permissions:
109
contents: write
1110

Dockerfile.amd64-static

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ LABEL dps.container=true
55
ENV DPS_CONTAINER=1
66
VOLUME ["/var/run/docker.sock", "/var/run/docker.sock"]
77
ENTRYPOINT ["/app/dns-proxy-server"]
8-
CMD ["-D", "java.io.tmpdir=/app"]
8+
CMD ["--create-tmp-dir"]

Dockerfile.builder.linux-aarch64

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,19 @@
1-
FROM ghcr.io/graalvm/graalvm-community:22.0.1@sha256:fa702fdbfcf865a2a20bc48d933f877f75e9c1ff4d91bf68ad23e5b8dd39c2d5
1+
FROM arm64v8/debian:9-slim
2+
3+
COPY ./src/main/docker/builder/sources.list /etc/apt/sources.list
4+
5+
RUN apt-get update -y &&\
6+
apt-get install --force-yes -y zlib1g-dev=1:1.2.8.dfsg-5 zlib1g=1:1.2.8.dfsg-5 &&\
7+
apt-get install --force-yes -y build-essential libz-dev curl
8+
9+
ENV GRAALVM_URL='https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-21.0.2/graalvm-community-jdk-21.0.2_linux-aarch64_bin.tar.gz'
10+
RUN mkdir /graalvm &&\
11+
curl -L $GRAALVM_URL > /tmp/graalvm.tgz &&\
12+
tar --strip 1 -zxvf /tmp/graalvm.tgz -C /graalvm
13+
14+
ENV JAVA_HOME=/graalvm
15+
ENV PATH="${PATH}:$JAVA_HOME/bin"
16+
RUN uname -a && whoami && $JAVA_HOME/bin/java -version
217

318
WORKDIR /app/build
419
COPY ./build/artifacts/native-image-source/ /app/build

Dockerfile.builder.linux-amd64

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,19 @@
1-
FROM ghcr.io/graalvm/graalvm-community:21.0.2-ol9-20240116 AS BUILDER
1+
FROM debian:9-slim
2+
3+
COPY ./src/main/docker/builder/sources.list /etc/apt/sources.list
4+
5+
RUN apt-get update -y &&\
6+
apt-get install --force-yes -y zlib1g-dev=1:1.2.8.dfsg-5 zlib1g=1:1.2.8.dfsg-5 &&\
7+
apt-get install --force-yes -y build-essential libz-dev curl
8+
9+
ENV GRAALVM_URL='https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-21.0.2/graalvm-community-jdk-21.0.2_linux-x64_bin.tar.gz'
10+
RUN mkdir /graalvm &&\
11+
curl -L $GRAALVM_URL > /tmp/graalvm.tgz &&\
12+
tar --strip 1 -zxvf /tmp/graalvm.tgz -C /graalvm
13+
14+
ENV JAVA_HOME=/graalvm
15+
ENV PATH="${PATH}:$JAVA_HOME/bin"
16+
RUN uname -a && whoami && $JAVA_HOME/bin/java -version
217

318
COPY ./ /app
419
WORKDIR /app

RELEASE-NOTES.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 3.21.2
2+
* #285, #494: Fixing amd64 static docker image.
3+
* #435: Make DPS dynamic linked binary compatible with libgc 2.15 again
4+
15
## 3.21.1
26
* #435: Upgrading docker run images due glibc
37
* #285: Linux AMD64 static binary

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version=3.21.1-snapshot
1+
version=3.21.2-snapshot
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
deb http://archive.debian.org/debian/ stretch main contrib non-free
2+
deb-src http://archive.debian.org/debian/ stretch main contrib non-free

src/main/java/com/mageddo/dnsproxyserver/App.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,16 @@
66
import com.mageddo.dnsproxyserver.config.dataprovider.ConfigDAOCmdArgs;
77
import com.mageddo.dnsproxyserver.config.dataprovider.vo.ConfigFlag;
88
import com.mageddo.dnsproxyserver.di.Context;
9+
import lombok.SneakyThrows;
10+
11+
import java.nio.file.Files;
12+
import java.nio.file.Paths;
913

1014
public class App {
1115

1216
private final String[] args;
1317
private Config config;
18+
private ConfigFlag flags;
1419

1520
public App(String[] args) {
1621
this.args = args;
@@ -22,6 +27,10 @@ public static void main(String[] args) {
2227

2328
void start() {
2429

30+
this.flags = ConfigFlag.parse(this.args);
31+
32+
this.checkHiddenCommands();
33+
2534
this.checkExitCommands();
2635

2736
this.config = this.findConfig(args);
@@ -33,6 +42,12 @@ void start() {
3342
// todo install as service
3443
}
3544

45+
void checkHiddenCommands() {
46+
if (this.flags.isCreateTmpDir()) {
47+
this.createTmpDirIfNotExists();
48+
}
49+
}
50+
3651
Config findConfig(String[] args) {
3752
ConfigDAOCmdArgs.setArgs(args);
3853
return Configs.getInstance();
@@ -51,7 +66,6 @@ void startContext() {
5166
}
5267

5368
void checkExitCommands() {
54-
final var flags = ConfigFlag.parse(this.args);
5569
if (flags.isHelp() || flags.isVersion()) {
5670
exitGracefully();
5771
}
@@ -60,4 +74,10 @@ void checkExitCommands() {
6074
void exitGracefully() {
6175
System.exit(0);
6276
}
77+
78+
@SneakyThrows
79+
void createTmpDirIfNotExists() {
80+
final var tmpDir = Paths.get(System.getProperty("java.io.tmpdir"));
81+
Files.createDirectories(tmpDir);
82+
}
6383
}

src/main/java/com/mageddo/dnsproxyserver/config/dataprovider/vo/ConfigFlag.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,13 @@ this way you will probably not have resolution issues by acl (implies dps-networ
184184
)
185185
private Boolean dockerSolverHostMachineFallbackActive;
186186

187+
@Option(
188+
hidden = true,
189+
names = {"-create-tmp-dir", "--create-tmp-dir"}, defaultValue = "false",
190+
description = "Create the dir set as tmp in the jvm if it doesn't exists yet."
191+
)
192+
private boolean createTmpDir;
193+
187194
@JsonIgnore
188195
private String[] args;
189196

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.mageddo.net;
2+
3+
import lombok.SneakyThrows;
4+
5+
import java.net.ServerSocket;
6+
7+
public class SocketUtils {
8+
9+
@SneakyThrows
10+
public static int findRandomFreePort() {
11+
final var server = new ServerSocket(0);
12+
try (server) {
13+
return server.getLocalPort();
14+
}
15+
}
16+
}

0 commit comments

Comments
 (0)