mirror of
https://github.com/dolthub/dolt.git
synced 2025-12-30 16:12:39 -06:00
151 lines
4.7 KiB
Plaintext
151 lines
4.7 KiB
Plaintext
FROM --platform=linux/amd64 ubuntu:20.04
|
|
|
|
# install python, libmysqlclient-dev, java, bats, git ruby, perl, cpan
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
RUN apt update -y && \
|
|
apt install -y \
|
|
curl \
|
|
gnupg \
|
|
libwxbase3.0-0v5 \
|
|
libwxgtk3.0-gtk3-0v5 \
|
|
libncurses5 \
|
|
libsctp1 \
|
|
software-properties-common && \
|
|
curl -sL https://deb.nodesource.com/setup_14.x | bash - && \
|
|
add-apt-repository ppa:deadsnakes/ppa -y && \
|
|
curl -OL https://binaries2.erlang-solutions.com/ubuntu/pool/contrib/e/esl-erlang/esl-erlang_25.0-1~ubuntu~focal_amd64.deb && \
|
|
dpkg -i esl-erlang_25.0-1~ubuntu~focal_amd64.deb && \
|
|
curl -LO https://binaries2.erlang-solutions.com/ubuntu/pool/contrib/e/elixir/elixir_1.14.3_1_otp_25.3~ubuntu~focal_all.deb && \
|
|
dpkg -i elixir_1.14.3_1_otp_25.3~ubuntu~focal_all.deb
|
|
RUN apt update -y && \
|
|
apt install -y \
|
|
python3.8 \
|
|
python3-pip \
|
|
curl \
|
|
wget \
|
|
pkg-config \
|
|
mysql-client \
|
|
libmysqlclient-dev \
|
|
openjdk-17-jdk \
|
|
ant \
|
|
ca-certificates-java \
|
|
bats \
|
|
perl \
|
|
php \
|
|
php-mysqli \
|
|
cpanminus \
|
|
cmake \
|
|
g++ \
|
|
libmysqlcppconn-dev \
|
|
git \
|
|
ruby \
|
|
ruby-dev \
|
|
gem \
|
|
libc6 \
|
|
libgcc1 \
|
|
libgssapi-krb5-2 \
|
|
libicu66 \
|
|
libssl1.1 \
|
|
libstdc++6 \
|
|
zlib1g \
|
|
r-base \
|
|
postgresql \
|
|
postgresql-contrib \
|
|
libpq-dev \
|
|
nodejs \
|
|
lsof \
|
|
postgresql-server-dev-all && \
|
|
update-ca-certificates -f
|
|
|
|
# install go
|
|
WORKDIR /root
|
|
ENV GO_VERSION=1.22.1
|
|
ENV GOPATH=$HOME/go
|
|
ENV PATH=$PATH:$GOPATH/bin
|
|
ENV PATH=$PATH:$GOPATH/bin:/usr/local/go/bin
|
|
RUN curl -O "https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz" && \
|
|
sha256sum "go${GO_VERSION}.linux-amd64.tar.gz" && \
|
|
tar -xvf "go${GO_VERSION}.linux-amd64.tar.gz" -C /usr/local && \
|
|
chown -R root:root /usr/local/go && \
|
|
mkdir -p $HOME/go/{bin,src} && \
|
|
go version
|
|
|
|
# install MySQL dependency from source
|
|
RUN git clone https://github.com/go-sql-driver/mysql.git
|
|
WORKDIR mysql
|
|
RUN git checkout tags/v1.6.0 -b v1.6.0
|
|
RUN go install .
|
|
WORKDIR /
|
|
|
|
# install dotnet
|
|
RUN curl -LO https://download.visualstudio.microsoft.com/download/pr/13b9d84c-a35b-4ffe-8f62-447a01403d64/1f9ae31daa0f7d98513e7551246899f2/dotnet-sdk-5.0.400-linux-x64.tar.gz && \
|
|
tar -C /usr/local/bin -xzf dotnet-sdk-5.0.400-linux-x64.tar.gz && \
|
|
dotnet --version
|
|
|
|
# install pip for python3.8
|
|
RUN curl -LO https://bootstrap.pypa.io/get-pip.py && \
|
|
python3.8 get-pip.py && \
|
|
pip --version
|
|
|
|
# install mysql connector and pymsql
|
|
RUN pip install mysql-connector-python==8.0.32
|
|
RUN pip install PyMySQL==1.0.2
|
|
RUN pip install sqlalchemy==1.4.46
|
|
|
|
# Setup JAVA_HOME -- useful for docker commandline
|
|
ENV JAVA_HOME /usr/lib/jvm/java-17-openjdk-amd64/
|
|
|
|
# install mysql connector java
|
|
RUN mkdir -p /mysql-client-tests/java
|
|
RUN curl -L -o /mysql-client-tests/java/mysql-connector-java-8.0.21.jar \
|
|
https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.21/mysql-connector-java-8.0.21.jar
|
|
|
|
# install node deps
|
|
COPY mysql-client-tests/node/package.json /mysql-client-tests/node/
|
|
COPY mysql-client-tests/node/package-lock.json /mysql-client-tests/node/
|
|
WORKDIR /mysql-client-tests/node
|
|
RUN npm install
|
|
|
|
# install cpan dependencies
|
|
RUN cpanm --force DBD::mysql
|
|
|
|
# install ruby dependencies
|
|
COPY mysql-client-tests/ruby/Gemfile /mysql-client-tests/ruby/
|
|
COPY mysql-client-tests/ruby/Gemfile.lock /mysql-client-tests/ruby/
|
|
WORKDIR /mysql-client-tests/ruby
|
|
RUN gem install bundler -v 2.1.4 && bundle install
|
|
|
|
# install R packages
|
|
RUN Rscript -e 'install.packages(c("DBI", "RMySQL", "RMariaDB"), \
|
|
repos = c(RSPM="https://packagemanager.rstudio.com/cran/__linux__/focal/latest"))'
|
|
|
|
# install rust
|
|
RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain stable -y
|
|
ENV PATH="/root/.cargo/bin:${PATH}"
|
|
|
|
# install postgres and psql
|
|
RUN service postgresql start
|
|
|
|
# install mysql_fdw
|
|
WORKDIR /mysql-client-tests/mysql_fdw
|
|
RUN git clone https://github.com/EnterpriseDB/mysql_fdw --branch REL-2_9_0
|
|
WORKDIR /mysql-client-tests/mysql_fdw/mysql_fdw
|
|
RUN make USE_PGXS=1 && \
|
|
make USE_PGXS=1 install
|
|
|
|
# install dolt from source
|
|
WORKDIR /root/building
|
|
COPY ./go .
|
|
ENV GOFLAGS="-mod=readonly"
|
|
RUN go build -o /usr/local/bin/dolt ./cmd/dolt
|
|
|
|
COPY mysql-client-tests /mysql-client-tests
|
|
COPY mysql-client-tests/mysql-client-tests-entrypoint.sh /mysql-client-tests/entrypoint.sh
|
|
|
|
# install rust dependencies
|
|
WORKDIR /mysql-client-tests/rust
|
|
RUN cargo build --config net.git-fetch-with-cli=true
|
|
|
|
WORKDIR /mysql-client-tests
|
|
ENTRYPOINT ["/mysql-client-tests/entrypoint.sh"]
|