FROM ubuntu:20.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://ports.ubuntu.com/ubuntu-ports#http://mirrors.ustc.edu.cn/ubuntu-ports/#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
    python3 python3-pip python3-tk && \
    apt-get clean

RUN apt-get install -yq software-properties-common && add-apt-repository -y ppa:deadsnakes/ppa && \
    apt-get update

# 安装 python2-pip，并设置pip源为ustc
RUN apt-get install python2 python2-dev -y && curl https://bootstrap.pypa.io/pip/2.7/get-pip.py | python2
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.8
RUN apt-get install -yq python3.8-dev python3.8-tk

# 安装python3.8 的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

# 增加ppa源，安装python3.5
RUN apt-get install -yq python3.5 python3.5-dev python3.5-tk && \
    curl https://bootstrap.pypa.io/pip/3.5/get-pip.py | python3.5 && \
    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.6
RUN apt-get install -yq python3.6-dev libjpeg-dev && \
    curl https://bootstrap.pypa.io/pip/3.6/get-pip.py | python3.6 && \
    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


# 安装python3.7
RUN apt-get install -yq python3.7-dev python3.7-tk && \
    curl https://bootstrap.pypa.io/get-pip.py | python3.7

# 安装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

# 将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-aarch64.sh && \
    bash +x cmake-3.22.1-linux-aarch64.sh --prefix=/usr --exclude-subdir && \
    rm -rf *

# 安装golang 版本
RUN cd /tmp && wget https://go.dev/dl/go1.17.1.linux-arm64.tar.gz && \
    tar -zxvf go1.17.1.linux-arm64.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

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


WORKDIR /home

EXPOSE 3777
ENTRYPOINT service ssh restart && bash
