@@ -9,9 +9,38 @@ RUN microdnf -y install git &&\
99
1010FROM quay.io/konveyor/static-report:${VERSION} as static-report
1111
12- # Build the manager binary
12+ # Build the manager binary
1313FROM golang:1.23.9 as builder
1414
15+ # install sqlite headers and cross-compilation tools for CGO
16+ RUN apt-get update && apt-get install -y \
17+ sqlite3 \
18+ libsqlite3-dev \
19+ gcc \
20+ gcc-mingw-w64 \
21+ clang \
22+ git \
23+ wget \
24+ xz-utils \
25+ make \
26+ patch \
27+ cmake \
28+ libssl-dev \
29+ lzma-dev \
30+ libxml2-dev \
31+ && rm -rf /var/lib/apt/lists/*
32+
33+ # build OSXCross for macOS cross-compilation for sqlite3
34+ RUN git clone https://github.com/tpoechtrager/osxcross /tmp/osxcross && \
35+ cd /tmp/osxcross && \
36+ wget -O tarballs/MacOSX11.3.sdk.tar.xz \
37+ "https://github.com/joseluisq/macosx-sdks/releases/download/11.3/MacOSX11.3.sdk.tar.xz" && \
38+ UNATTENDED=yes OSX_VERSION_MIN=10.12 TARGET_DIR=/usr/local/osxcross ./build.sh && \
39+ test -f /usr/local/osxcross/bin/x86_64-apple-darwin20.4-clang && \
40+ rm -rf /tmp/osxcross
41+
42+ ENV PATH="/usr/local/osxcross/bin:$PATH"
43+
1544WORKDIR /workspace
1645# Copy the Go Modules manifests
1746COPY go.mod go.mod
@@ -30,28 +59,29 @@ ARG VERSION=latest
3059ARG BUILD_COMMIT
3160ARG IMAGE=quay.io/konveyor/kantra
3261ARG NAME=kantra
62+ ARG GOARCH=amd64
3363ARG JAVA_BUNDLE=/jdtls/java-analyzer-bundle/java-analyzer-bundle.core/target/java-analyzer-bundle.core-1.0.0-SNAPSHOT.jar
3464ARG JAVA_PROVIDER_IMG=quay.io/konveyor/java-external-provider
3565ARG GENERIC_PROVIDER_IMG=quay.io/konveyor/generic-external-provider
3666ARG DOTNET_PROVIDER_IMG=quay.io/konveyor/dotnet-external-provider
3767
38- RUN CGO_ENABLED=0 GOOS=linux go build --ldflags="-X 'github.com/konveyor-ecosystem/kantra/cmd.Version=$VERSION' \
68+ RUN CGO_ENABLED=1 GOOS=linux GOARCH=$GOARCH go build --ldflags="-X 'github.com/konveyor-ecosystem/kantra/cmd.Version=$VERSION' \
3969-X 'github.com/konveyor-ecosystem/kantra/cmd.RunnerImage=$IMAGE' -X 'github.com/konveyor-ecosystem/kantra/cmd.BuildCommit=$BUILD_COMMIT' \
4070-X 'github.com/konveyor-ecosystem/kantra/cmd.JavaBundlesLocation=$JAVA_BUNDLE' -X 'github.com/konveyor-ecosystem/kantra/cmd.JavaProviderImage=$JAVA_PROVIDER_IMG' \
4171-X 'github.com/konveyor-ecosystem/kantra/cmd.DotnetProviderImage=$DOTNET_PROVIDER_IMG' \
4272-X 'github.com/konveyor-ecosystem/kantra/cmd.GenericProviderImage=$GENERIC_PROVIDER_IMG' -X 'github.com/konveyor-ecosystem/kantra/cmd.RootCommandName=$NAME'" -a -o kantra main.go
4373
44- RUN CGO_ENABLED=0 GOOS=darwin go build --ldflags="-X 'github.com/konveyor-ecosystem/kantra/cmd.Version=$VERSION' \
74+ RUN CGO_ENABLED=1 GOOS=darwin GOARCH=$GOARCH CC=x86_64-apple-darwin20.4-clang CXX=x86_64-apple-darwin20.4-clang++ go build --ldflags="-X 'github.com/konveyor-ecosystem/kantra/cmd.Version=$VERSION' \
4575-X 'github.com/konveyor-ecosystem/kantra/cmd.RunnerImage=$IMAGE' -X 'github.com/konveyor-ecosystem/kantra/cmd.BuildCommit=$BUILD_COMMIT' \
4676-X 'github.com/konveyor-ecosystem/kantra/cmd.JavaBundlesLocation=$JAVA_BUNDLE' -X 'github.com/konveyor-ecosystem/kantra/cmd.JavaProviderImage=$JAVA_PROVIDER_IMG' \
4777-X 'github.com/konveyor-ecosystem/kantra/cmd.DotnetProviderImage=$DOTNET_PROVIDER_IMG' \
4878-X 'github.com/konveyor-ecosystem/kantra/cmd.GenericProviderImage=$GENERIC_PROVIDER_IMG' -X 'github.com/konveyor-ecosystem/kantra/cmd.RootCommandName=$NAME'" -a -o darwin-kantra main.go
4979
50- RUN CGO_ENABLED=0 GOOS=windows go build --ldflags="-X 'github.com/konveyor-ecosystem/kantra/cmd.Version=$VERSION' \
80+ RUN CGO_ENABLED=1 GOOS=windows GOARCH=$GOARCH CC=x86_64-w64-mingw32-gcc go build --ldflags="-X 'github.com/konveyor-ecosystem/kantra/cmd.Version=$VERSION' \
5181-X 'github.com/konveyor-ecosystem/kantra/cmd.RunnerImage=$IMAGE' -X 'github.com/konveyor-ecosystem/kantra/cmd.BuildCommit=$BUILD_COMMIT' \
5282-X 'github.com/konveyor-ecosystem/kantra/cmd.JavaBundlesLocation=$JAVA_BUNDLE' -X 'github.com/konveyor-ecosystem/kantra/cmd.JavaProviderImage=$JAVA_PROVIDER_IMG' \
5383-X 'github.com/konveyor-ecosystem/kantra/cmd.DotnetProviderImage=$DOTNET_PROVIDER_IMG' \
54- -X 'github.com/konveyor-ecosystem/kantra/cmd.GenericProviderImage=$GENERIC_PROVIDER_IMG' -X 'github.com/konveyor-ecosystem/kantra/cmd.RootCommandName=$NAME'" -a -o windows-kantra main.go
84+ -X 'github.com/konveyor-ecosystem/kantra/cmd.GenericProviderImage=$GENERIC_PROVIDER_IMG' -X 'github.com/konveyor-ecosystem/kantra/cmd.RootCommandName=$NAME'" -a -o windows-kantra.exe main.go
5585
5686FROM quay.io/konveyor/analyzer-lsp:${VERSION}
5787
@@ -75,12 +105,12 @@ RUN mkdir -p /opt/rulesets /opt/rulesets/input /opt/rulesets/convert /opt/openre
75105
76106COPY --from=builder /workspace/kantra /usr/local/bin/kantra
77107COPY --from=builder /workspace/darwin-kantra /usr/local/bin/darwin-kantra
78- COPY --from=builder /workspace/windows-kantra /usr/local/bin/windows-kantra
108+ COPY --from=builder /workspace/windows-kantra.exe /usr/local/bin/windows-kantra.exe
79109COPY --from=rulesets /rulesets/default/generated /opt/rulesets
80110COPY --from=rulesets /windup-rulesets/rules/rules-reviewed/openrewrite /opt/openrewrite
81111COPY --from=static-report /usr/bin/js-bundle-generator /usr/local/bin
82112COPY --from=static-report /usr/local/static-report /usr/local/static-report
83113COPY --chmod=755 entrypoint.sh /usr/bin/entrypoint.sh
84114COPY --chmod=755 openrewrite_entrypoint.sh /usr/bin/openrewrite_entrypoint.sh
85115
86- ENTRYPOINT ["kantra" ]
116+ ENTRYPOINT ["kantra" ]
0 commit comments