Skip to content

Instantly share code, notes, and snippets.

@alexkutsan
Created February 15, 2020 15:29
Show Gist options
  • Save alexkutsan/380c458cb5b648fe4fd7861fd64f34fe to your computer and use it in GitHub Desktop.
Save alexkutsan/380c458cb5b648fe4fd7861fd64f34fe to your computer and use it in GitHub Desktop.
FROM ubuntu:18.04
ENV TZ=Europe/Minsk
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt update && apt install -yq \
sudo \
cowsay \
git \
git-gui \
tmux \
wget \
zsh \
vim \
fonts-powerline \
gitk \
meld \
tree \
psmisc \
mc \
screen \
locales \
gnupg
RUN mkdir -p /home/developer/sdl
# Setup locale
RUN locale-gen en_US.UTF-8
# ZSH config
RUN git clone https://github.com/robbyrussell/oh-my-zsh /opt/oh-my-zsh && \
cp /opt/oh-my-zsh/templates/zshrc.zsh-template .zshrc && \
cp -r /opt/oh-my-zsh .oh-my-zsh && \
cp /opt/oh-my-zsh/templates/zshrc.zsh-template /home/developer/.zshrc && \
cp -r /opt/oh-my-zsh /home/developer/.oh-my-zsh && \
sed "s/robbyrussell/bira/" -i /home/developer/.zshrc && \
echo "PROMPT=\$(echo \$PROMPT | sed 's/%m/%f\$IMAGE_NAME/g')" >> /home/developer/.zshrc && \
echo "RPROMPT=''" >> /home/developer/.zshrc
# Tmux config
WORKDIR /opt
RUN git clone https://github.com/gpakosz/.tmux.git && \
echo "set-option -g default-shell /bin/zsh" >> .tmux/.tmux.conf
COPY onStartup/tmux_setup.sh /opt/startup/
# Sublime instalation
ARG SUBLIME_BUILD="${SUBLIME_BUILD:-3207}"
RUN wget --no-check-certificate https://download.sublimetext.com/sublime-text_build-"${SUBLIME_BUILD}"_amd64.deb --no-check-certificate && \
dpkg -i sublime-text_build-"${SUBLIME_BUILD}"_amd64.deb
RUN wget --no-check-certificate -qO - https://download.sublimetext.com/sublimehq-pub.gpg | apt-key add -
RUN echo "deb http://download.sublimetext.com/ apt/stable/" | tee /etc/apt/sources.list.d/sublime-text.list
RUN apt update && apt install -y sublime-merge
# SSH setup
RUN apt update && apt install -yq \
openssh-server \
libmysqlclient-dev
COPY onStartup/ssh_setup.sh /opt/startup/
#Build
RUN apt update && apt install -yq \
automake \
cmake \
cmake-curses-gui \
ccache \
clang-format-6.0 \
g++ \
gdb \
lcov \
html2text \
cppcheck
RUN apt-get update && apt-get install sudo wget apt-transport-https gnupg2 -y
RUN echo "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.6 main" >> /etc/apt/sources.list \
&& wget http://apt.llvm.org/llvm-snapshot.gpg.key \
&& apt-key add llvm-snapshot.gpg.key \
&& apt-get update \
&& apt-get install clang-3.6 -y
# SDL build evironment
RUN apt update && apt install -yq \
libexpat1-dev \
libssl1.0-dev \
libbluetooth3 \
libbluetooth-dev \
libudev-dev \
libusb-1.0 \
bluez-tools \
sqlite3 \
libsqlite3-dev \
build-essential \
python-dev \
autotools-dev \
libicu-dev \
libbz2-dev
# ATF build environment
RUN apt update && apt install -yq \
liblua5.2 \
libxml2 \
libxml2-dev \
lua-lpeg \
qt5-default \
libqt5webkit5-dev \
libqt5websockets5-dev \
net-tools
COPY onStartup/enable_core_dumps.sh /opt/startup/
ENV QMAKE /usr/bin/qmake
WORKDIR /home/developer
#COPY scripts/qt-installer-noninteractive.qs /tmp/qt-installer-noninteractive.qs
#RUN wget http://download.qt.io/official_releases/qt/5.12/5.12.3/qt-opensource-linux-x64-5.12.3.run && \
# chmod +x qt-opensource-linux-x64-5.12.3.run && \
# ./qt-opensource-linux-x64-5.12.3.run --script /tmp/qt-installer-noninteractive.qs -platform minimal && \
# rm qt-opensource-linux-x64-5.12.3.run
COPY onStartup/qt_creator_configs.sh /opt/startup/
RUN ln -s /home/developer/Qt/Tools/QtCreator/bin/qtcreator /usr/bin/qtcreator
# distcc & tornado-httpserver for SDL External Flow policy manager
RUN apt update && apt install -yq distcc \
distccmon-gnome \
python.tornado
RUN mkdir -p /home/developer/.distcc
COPY onStartup/distccd_setup.sh /opt/startup/
RUN apt install libvulkan1 mesa-vulkan-drivers vulkan-utils curl
RUN sh -c 'echo "deb http://packages.ros.org/ros/ubuntu bionic main" > /etc/apt/sources.list.d/ros-latest.list'
RUN apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
RUN curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
RUN apt update && apt install -y ros-melodic-desktop-full python-rosinstall python-rosinstall-generator python-wstool build-essential ros-melodic-rosbridge-library ros-melodic-rosbridge-msgs ros-melodic-rosbridge-server ros-melodic-rosbridge-suite python3-colcon-common-extensions
RUN mkdir -p /home/developer/.git-templates/hooks/
EXPOSE 3632
COPY onStartup/entrypoint.sh /usr/bin/
WORKDIR /home/developer
ENTRYPOINT ["/bin/bash", "-e", "/usr/bin/entrypoint.sh"]
CMD ["/bin/zsh"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment