FROM ubuntu:xenial ENV RUSTUP_HOME=/usr/local/rustup \ CARGO_HOME=/usr/local/cargo \ PATH=/usr/local/cargo/bin:$PATH \ RUST_VERSION=1.43.0 \ LC_ALL=C.UTF-8 \ LANG=C.UTF-8 # Add deadsnakes repo RUN set -eux; \ apt update -qy; \ apt install -y software-properties-common; \ add-apt-repository -y ppa:deadsnakes/ppa; # APT dependencies RUN set -eux; \ apt update -qy; \ apt install -y \ software-properties-common wget curl pkg-config git \ libpq-dev libsnappy-dev libsodium-dev \ python3.7 python3.7-dev python3.7-venv python3.7-distutils \ python3.8 python3.8-dev python3.8-venv python3.8-distutils \ python3-dev python3-pip python3-wheel python3-requests python3-six python3-pytest # Rust setup from docker-rust debian Dockerfile RUN set -eux; \ dpkgArch="$(dpkg --print-architecture)"; \ rustArch='x86_64-unknown-linux-gnu'; rustupSha256='ad1f8b5199b3b9e231472ed7aa08d2e5d1d539198a15c5b1e53c746aad81d27b' ; \ url="https://static.rust-lang.org/rustup/archive/1.21.1/${rustArch}/rustup-init"; \ wget "$url"; \ echo "${rustupSha256} *rustup-init" | sha256sum -c -; \ chmod +x rustup-init; \ ./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION; \ rm rustup-init; \ chmod -R a+w $RUSTUP_HOME $CARGO_HOME; \ rustup --version; \ cargo --version; \ rustc --version; # Compile and install diesel RUN set -eux; \ cargo install diesel_cli --version 1.3.1 --no-default-features --features postgres; \ diesel --version # Install pipenv using aggressive 'get-pipenv.py' script # this will clobber distro installation of, eg, 'pip' # original command: curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python3; \ RUN set -eux; \ curl -L https://archive.org/download/pipenv-mirror/get-pipenv.2020-12-22.py | python3; \ pipenv --version