2024-01-26 14:57:48 +00:00
|
|
|
FROM debian:bookworm-20240110-slim AS builder
|
|
|
|
RUN apt-get update \
|
|
|
|
&& apt-get install -y \
|
|
|
|
autoconf \
|
|
|
|
automake \
|
|
|
|
build-essential \
|
|
|
|
curl \
|
|
|
|
git \
|
|
|
|
libtool \
|
|
|
|
pkg-config \
|
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /opt/src
|
|
|
|
RUN git clone https://github.com/openvenues/libpostal.git \
|
|
|
|
&& cd libpostal \
|
|
|
|
&& ./bootstrap.sh \
|
|
|
|
&& ./configure --datadir=/usr/local/share \
|
|
|
|
&& make -j4 \
|
|
|
|
&& make install
|
|
|
|
|
|
|
|
FROM hexpm/elixir:1.16.0-erlang-26.2.1-debian-bookworm-20231009-slim AS elixir
|
|
|
|
RUN apt-get update \
|
|
|
|
&& apt-get install -y \
|
|
|
|
build-essential \
|
|
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
|
|
&& mix do local.rebar, local.hex
|
|
|
|
COPY --from=builder /usr/local/include/libpostal /usr/local/include/libpostal
|
|
|
|
COPY --from=builder /usr/local/lib/libpostal.a /usr/local/lib/
|
|
|
|
COPY --from=builder /usr/local/lib/libpostal.la /usr/local/lib/
|
|
|
|
COPY --from=builder /usr/local/lib/libpostal.so.1.0.1 /usr/local/lib/
|
|
|
|
COPY --from=builder /usr/local/lib/pkgconfig/libpostal.pc /usr/local/lib/pkgconfig/
|
|
|
|
COPY --from=builder /usr/local/share/libpostal /usr/local/share/libpostal
|
|
|
|
COPY --from=builder /usr/local/bin/libpostal_data /usr/local/bin/libpostal_data
|
|
|
|
RUN ln -s /usr/local/lib/libpostal.so.1.0.1 /usr/local/lib/libpostal.so.1 \
|
2024-01-28 18:13:45 -03:00
|
|
|
&& ln -s /usr/local/lib/libpostal.so.1.0.1 /usr/local/lib/libpostal.so \
|
|
|
|
&& ldconfig
|
2024-01-26 14:57:48 +00:00
|
|
|
WORKDIR /opt/src/app
|
|
|
|
VOLUME ["/opt/src/app/_build", "/opt/src/app/deps"]
|
|
|
|
COPY ./ex .
|
|
|
|
RUN mix do deps.get, deps.compile
|
|
|
|
|
|
|
|
FROM python:3.12.1-slim-bookworm AS python
|
|
|
|
ENV PATH /root/.local/bin:${PATH}
|
|
|
|
RUN apt-get update \
|
|
|
|
&& apt-get install -y \
|
|
|
|
build-essential \
|
|
|
|
curl \
|
|
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
|
|
&& curl -sSL https://install.python-poetry.org | python3 -
|
|
|
|
COPY --from=builder /usr/local/include/libpostal /usr/local/include/libpostal
|
|
|
|
COPY --from=builder /usr/local/lib/libpostal.a /usr/local/lib/
|
|
|
|
COPY --from=builder /usr/local/lib/libpostal.la /usr/local/lib/
|
|
|
|
COPY --from=builder /usr/local/lib/libpostal.so.1.0.1 /usr/local/lib/
|
|
|
|
COPY --from=builder /usr/local/lib/pkgconfig/libpostal.pc /usr/local/lib/pkgconfig/
|
|
|
|
COPY --from=builder /usr/local/share/libpostal /usr/local/share/libpostal
|
|
|
|
COPY --from=builder /usr/local/bin/libpostal_data /usr/local/bin/libpostal_data
|
|
|
|
RUN ln -s /usr/local/lib/libpostal.so.1.0.1 /usr/local/lib/libpostal.so.1 \
|
2024-01-28 18:13:45 -03:00
|
|
|
&& ln -s /usr/local/lib/libpostal.so.1.0.1 /usr/local/lib/libpostal.so \
|
|
|
|
&& ldconfig
|
2024-01-26 14:57:48 +00:00
|
|
|
WORKDIR /opt/src/app
|
|
|
|
COPY ./py/pyproject.toml .
|
|
|
|
COPY ./py/poetry.lock .
|
|
|
|
RUN poetry install
|
|
|
|
COPY ./py .
|
|
|
|
|
|
|
|
FROM golang:1.21.6-bookworm AS go
|
|
|
|
COPY --from=builder /usr/local/include/libpostal /usr/local/include/libpostal
|
|
|
|
COPY --from=builder /usr/local/lib/libpostal.a /usr/local/lib/
|
|
|
|
COPY --from=builder /usr/local/lib/libpostal.la /usr/local/lib/
|
|
|
|
COPY --from=builder /usr/local/lib/libpostal.so.1.0.1 /usr/local/lib/
|
|
|
|
COPY --from=builder /usr/local/lib/pkgconfig/libpostal.pc /usr/local/lib/pkgconfig/
|
|
|
|
COPY --from=builder /usr/local/share/libpostal /usr/local/share/libpostal
|
|
|
|
COPY --from=builder /usr/local/bin/libpostal_data /usr/local/bin/libpostal_data
|
|
|
|
RUN ln -s /usr/local/lib/libpostal.so.1.0.1 /usr/local/lib/libpostal.so.1 \
|
2024-01-28 18:13:45 -03:00
|
|
|
&& ln -s /usr/local/lib/libpostal.so.1.0.1 /usr/local/lib/libpostal.so \
|
|
|
|
&& ldconfig
|
2024-01-26 14:57:48 +00:00
|
|
|
WORKDIR /opt/src/app
|
|
|
|
COPY ./go .
|
|
|
|
RUN go get ...
|