Attempted on both Alpine and debian and couldn’t get it to work. Here are complete Dockerfiles to test with:
FROM rust:alpine AS builder
RUN apk add --no-cache musl-dev unixodbc-static psqlodbc sqliteodbc
WORKDIR /src
ADD https://github.com/pacman82/odbc2parquet/archive/refs/heads/main.zip .
RUN unzip main.zip && cd odbc2parquet-main && cargo build --release
ENTRYPOINT ["/src/odbc2parquet-main/target/release/odbc2parquet"]
FROM rustlang/rust:nightly-bookworm-slim AS builder
RUN apt-get update -qq &&
apt-get install -y unixodbc-dev &&
rm -rf /var/lib/apt/lists/*
WORKDIR /src
ADD https://github.com/pacman82/odbc2parquet/archive/refs/heads/main.zip .
RUN unzip main.zip && cd odbc2parquet-main && cargo build --release
FROM debian:bookworm-slim AS runner
RUN apt-get update -qq &&
apt-get install -y unixodbc odbc-postgresql &&
rm -rf /var/lib/apt/lists/*
COPY --from=builder /src/odbc2parquet-main/target/release/odbc2parquet /usr/local/bin/
ENTRYPOINT ["/usr/local/bin/odbc2parquet"]
Then both list-data-sources
and list-drivers
came out empty.
Or to get simpler:
FROM debian:bookworm-slim AS runner
RUN apt-get update -qq &&
apt-get install -y unixodbc odbc-postgresql &&
rm -rf /var/lib/apt/lists/*
ENTRYPOINT ["/usr/bin/odbcinst", "-j"]
Also returns empty. (including equivalent in Alpine)
Do I have to manually modify the /etc/odbcinst.ini
file with full shared object paths? – Is there an automated way of doing this?