FROM amd64/ubuntu:18.04

# MAINTAINER 有被弃用，建议使用 LABEL
MAINTAINER "launolife@gmail.com"

LABEL VERSION="0.1.0"

ARG DEBIAN_FRONTEND=noninteractive
USER root

# change source to tencent cloud
RUN apt-get update && apt-get -yq install apt-transport-https wget
RUN sed -i "s#http://archive.ubuntu.com/ubuntu#http://mirrors.ustc.edu.cn/ubuntu/#g" /etc/apt/sources.list


RUN apt-get update && apt-get install -yq gnupg apt-utils sudo vim \
    autoconf automake dialog libtool pkg-config libffi-dev \
    libexpat1-dev libpciaccess-dev libxml2-dev \
    bison flex xutils-dev zlib1g-dev ninja-build git locate \
    zip unzip g++ curl \
    # install ssh
    openssh-server openssh-client \
    # fix hexdump missing issue
    bsdmainutils \
    libibverbs-dev \
    # install python2
    python python-pip python-tk && \
    apt-get clean

# 安装 python2-pip，并设置pip源为ustc
RUN python -m pip install --upgrade pip==20.3.4 setuptools==44.0.0 && \
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple && \
    pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn

# 安装python3.6
RUN apt-get install -yq python3.6-dev python3-pip libjpeg-dev && \
    apt-get clean

# 安装python3.6 的pip依赖
RUN python3.6 -m pip install --upgrade pip==20.3.4 setuptools==44.0.0 && \
    python3.6 -m pip install --no-cache-dir wheel numpy pandas pillow requests future futures urllib3

# 增加ppa源，安装python3.5
RUN apt-get install -yq software-properties-common && add-apt-repository -y ppa:deadsnakes/ppa && \
    apt-get update && \
    apt-get install -yq python3.5 python3-pip python3.5-dev python3-tk && \
    apt-get clean

# 安装python3.5 的pip依赖
RUN python3.5 -m pip install --upgrade pip==20.3.4 setuptools==44.0.0 && \
    python3.5 -m pip install --no-cache-dir wheel numpy pandas pillow requests future futures urllib3


# 安装python3.7
RUN apt-get install -yq python3.7-dev python3.7-tk

# 安装python3.7 的pip依赖
RUN python3.7 -m pip install --upgrade pip==20.3.4 setuptools==44.0.0 && \
    python3.7 -m pip install --no-cache-dir wheel numpy pandas pillow requests future futures urllib3


# 安装python3.8
RUN apt-get install -yq python3.8-dev python3.8-tk

# 安装python3.7 的pip依赖
RUN python3.8 -m pip install --upgrade pip==20.3.4 setuptools==44.0.0 && \
    python3.8 -m pip install --no-cache-dir wheel numpy pandas pillow requests future futures urllib3


# 将Python环境修改为OS默认版本
RUN ln -sf /usr/bin/python3.6 /usr/bin/python3 && \
    ln -sf /usr/local/bin/pip3.6 /usr/local/bin/pip3 && \
    ln -sf /usr/local/bin/pip2 /usr/local/bin/pip

# 本地语言设置
RUN apt-get -yq install locales && locale-gen en_US.UTF-8 zh_CN.UTF-8


# 安装cmake特定版本
RUN cd /tmp && wget https://cmake.org/files/v3.22/cmake-3.22.1-linux-x86_64.sh && \
    bash +x cmake-3.22.1-linux-x86_64.sh --prefix=/usr --exclude-subdir && \
    rm -rf *

# 安装golang 版本
RUN cd /tmp && wget https://go.dev/dl/go1.17.1.linux-amd64.tar.gz && \
    tar -zxvf go1.17.1.linux-amd64.tar.gz -C /usr/local

ENV GOPATH=/usr/local/go/bin
ENV GOROOT=/usr/local/go
ENV PATH=$PATH:${GOPATH}

# 设置python coding 模式
ENV PYTHONIOENCODING=utf-8

# 安装nodejs 和 npm
RUN curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
RUN apt-get update && apt-get install -y nodejs && npm config set unsafe-perm true && npm install yarn -g && npm config set unsafe-perm false

# 安装openjdk-11
RUN apt-get install openjdk-11-jdk -y

# 安装bazel
RUN cd /tmp && wget https://github.com/bazelbuild/bazel/releases/download/1.2.1/bazel-1.2.1-installer-linux-x86_64.sh && \
    bash +x bazel-1.2.1-installer-linux-x86_64.sh --user && \
    export PATH="$PATH:$HOME/bin" && \
    rm -rf *


# 安装bazelisk
RUN wget https://github.com/bazelbuild/bazelisk/releases/download/v1.7.5/bazelisk-linux-amd64 -O /usr/bin/bazelisk && \
    chmod 777 /usr/bin/bazelisk && \
    bazelisk --version

WORKDIR /home

EXPOSE 3777
ENTRYPOINT service ssh restart && bash