Skip to content

Instantly share code, notes, and snippets.

@oxycoder
Created December 4, 2019 06:41
Show Gist options
  • Save oxycoder/f60375113ac00823179f9633b56b516f to your computer and use it in GitHub Desktop.
Save oxycoder/f60375113ac00823179f9633b56b516f to your computer and use it in GitHub Desktop.
LLVM 9 + CMake + MSSQL ODBC Docker image
# Check http://releases.llvm.org/download.html#9.0.0 for the latest available binaries
FROM ubuntu:18.04
# Make sure the image is updated, install some prerequisites,
# Download the latest version of Clang (official binary) for Ubuntu
# Extract the archive and add Clang to the PATH
RUN apt-get update && apt-get install -y --no-install-recommends \
gnupg \
ca-certificates \
openssl \
xz-utils \
build-essential \
curl && rm -rf /var/lib/apt/lists/*
# Install MSSQL tools
RUN curl -SLk https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl -SLk https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
apt-get update && \
ACCEPT_EULA=Y apt-get -y --no-install-recommends install msodbcsql17 && \
# optional: for bcp and sqlcmd
ACCEPT_EULA=Y apt-get -y --no-install-recommends install mssql-tools && \
# for unixODBC development headers
apt-get install -y --no-install-recommends unixodbc-dev && \
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile && \
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc && \
rm -rf /var/lib/apt/lists/*
# Install cmake
RUN curl -SLk https://github.com/Kitware/CMake/releases/download/v3.16.0/cmake-3.16.0-Linux-x86_64.tar.gz | tar -zxC . && \
mv cmake-3.16.0-Linux-x86_64 cmake-3.16.0 && \
# save some space by remove cmake documents
rm -rf cmake-3.16.0/doc && \
echo 'export PATH=/cmake-3.16.0/bin:$PATH' >> ~/.bashrc
# Install LLVM 9
RUN curl -SLk http://releases.llvm.org/9.0.0/clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz | tar -xJC . && \
mv clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-18.04 llvm_9.0.0 && \
echo 'export PATH=/llvm_9.0.0/bin:$PATH' >> ~/.bashrc && \
echo 'export LD_LIBRARY_PATH=/llvm_9.0.0/lib:$LD_LIBRARY_PATH' >> ~/.bashrc && \
rm -rf /var/lib/apt/lists/*
# Clean up
RUN echo 'y' | apt-get --purge autoremove curl xz-utils
ENTRYPOINT ["/bin/bash"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment