68 lines
2.3 KiB
Docker
68 lines
2.3 KiB
Docker
# syntax=docker/dockerfile:1
|
|
FROM golang:1.26.2-alpine AS golang_cgo
|
|
ENV CGO_ENABLED=1
|
|
ENV GO_LDFLAGS="-linkmode external -extldflags '-static'"
|
|
RUN apk add --no-cache build-base
|
|
|
|
FROM golang_cgo AS dolt_build
|
|
RUN apk add --no-cache icu-dev icu-static
|
|
#COPY go-mysql-server /build/go-mysql-server
|
|
COPY dolt/go/go.mod /build/dolt/go/
|
|
WORKDIR /build/dolt/go/
|
|
RUN go mod download
|
|
COPY dolt/go/ /build/dolt/go/
|
|
RUN go build -tags icu_static -ldflags "$GO_LDFLAGS" -o /build/bin/dolt ./cmd/dolt
|
|
|
|
FROM --platform=${BUILDPLATFORM} ubuntu:22.04 AS runtime
|
|
|
|
# install ORM tools and dependencies
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
RUN apt-get update -y && \
|
|
apt-get install -y --no-install-recommends \
|
|
ca-certificates \
|
|
curl \
|
|
gnupg \
|
|
software-properties-common && \
|
|
curl -sL https://deb.nodesource.com/setup_22.x | bash -
|
|
RUN apt-get update -y && \
|
|
apt-get install -y --no-install-recommends \
|
|
nodejs \
|
|
python3 \
|
|
python3-pip \
|
|
git \
|
|
mysql-client \
|
|
libmysqlclient-dev \
|
|
netcat-openbsd \
|
|
openjdk-17-jdk \
|
|
maven && \
|
|
update-ca-certificates -f && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN git clone --depth 1 --branch v1.13.0 https://github.com/bats-core/bats-core.git /tmp/bats-core && \
|
|
/tmp/bats-core/install.sh /usr/local && \
|
|
rm -rf /tmp/bats-core
|
|
|
|
# install mysql connector and pymsql
|
|
RUN pip3 install mysql-connector-python PyMySQL sqlalchemy
|
|
|
|
# Setup JAVA_HOME -- useful for docker commandline
|
|
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/
|
|
|
|
# install the current latest maven version, `v3.9.11`, because apt installed one does not work with jdk 17
|
|
ADD https://archive.apache.org/dist/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.tar.gz apache-maven-3.9.11-bin.tar.gz
|
|
RUN tar zxvf apache-maven-3.9.11-bin.tar.gz && \
|
|
cp -r apache-maven-3.9.11 /opt && \
|
|
rm -rf apache-maven-3.9.11 apache-maven-3.9.11-bin.tar.gz
|
|
|
|
# add maven binary
|
|
ENV PATH=/opt/apache-maven-3.9.11/bin:$PATH
|
|
|
|
COPY --from=dolt_build /build/bin/dolt /usr/local/bin/dolt
|
|
COPY dolt/integration-tests/orm-tests /orm-tests
|
|
COPY dolt/integration-tests/bats/helper /orm-tests/helper
|
|
COPY dolt/integration-tests/orm-tests/orm-tests-entrypoint.sh /orm-tests/entrypoint.sh
|
|
RUN chmod +x /orm-tests/entrypoint.sh
|
|
|
|
WORKDIR /orm-tests
|
|
ENTRYPOINT ["/orm-tests/entrypoint.sh"]
|