Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions contrib/intermediate-dockerfiles/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
GO_VERSION := 1.17
PYTHON_VERSION := 3.10
RUST_VERSION := nightly-2022-08-23

.PHONY: all go-builder rust-builder rust-alpine-builder go-rust-builder py-runner

go-builder:
docker build -t scrolltech/go-builder:latest -f go-builder ./
docker image tag scrolltech/go-builder:latest scrolltech/go-builder:$(GO_VERSION)

rust-builder:
docker build -t scrolltech/rust-builder:latest -f rust-builder ./
docker image tag scrolltech/rust-builder:latest scrolltech/rust-builder:$(RUST_VERSION)

rust-alpine-builder:
docker build -t scrolltech/rust-alpine-builder:latest -f rust-alpine-builder ./
docker image tag scrolltech/rust-alpine-builder:latest scrolltech/rust-alpine-builder:$(RUST_VERSION)

go-rust-builder:
docker build -t scrolltech/go-rust-builder:latest -f go-rust-builder ./
docker image tag scrolltech/go-rust-builder:latest scrolltech/go-rust-builder:go-$(GO_VERSION)-rust-$(RUST_VERSION)

py-runner:
docker build -t scrolltech/py-runner:latest -f py-runner ./
docker image tag scrolltech/py-runner:latest scrolltech/py-runner:$(PYTHON_VERSION)

all: go-builder rust-builder rust-alpine-builder go-rust-builder py-runner

publish:
docker push scrolltech/go-builder:latest
docker push scrolltech/go-builder:$(GO_VERSION)
docker push scrolltech/rust-builder:latest
docker push scrolltech/rust-builder:$(RUST_VERSION)
docker push scrolltech/rust-alpine-builder:latest
docker push scrolltech/rust-alpine-builder:$(RUST_VERSION)
docker push scrolltech/go-rust-builder:latest
docker push scrolltech/go-rust-builder:go-$(GO_VERSION)-rust-$(RUST_VERSION)
docker push scrolltech/py-runner:latest
docker push scrolltech/py-runner:$(PYTHON_VERSION)
7 changes: 7 additions & 0 deletions contrib/intermediate-dockerfiles/go-builder
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM golang:1.17-alpine

# ENV GOPROXY https://goproxy.cn,direct

# RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

RUN apk add --no-cache gcc musl-dev linux-headers git ca-certificates
31 changes: 31 additions & 0 deletions contrib/intermediate-dockerfiles/go-rust-builder
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
FROM golang:1.17-alpine
ARG CARGO_CHEF_TAG=0.1.41
ARG DEFAULT_RUST_TOOLCHAIN=nightly-2022-08-23

RUN apk add --no-cache gcc musl-dev linux-headers git ca-certificates

ENV RUSTUP_HOME=/usr/local/rustup \
CARGO_HOME=/usr/local/cargo \
PATH=/usr/local/cargo/bin:$PATH

RUN set -eux; \
apkArch="$(apk --print-arch)"; \
case "$apkArch" in \
x86_64) rustArch='x86_64-unknown-linux-musl' ;; \
aarch64) rustArch='aarch64-unknown-linux-musl' ;; \
*) echo >&2 "unsupported architecture: $apkArch"; exit 1 ;; \
esac; \
\
url="https://static.rust-lang.org/rustup/dist/${rustArch}/rustup-init"; \
wget "$url"; \
chmod +x rustup-init;

RUN ./rustup-init -y --no-modify-path --default-toolchain ${DEFAULT_RUST_TOOLCHAIN}; \
rm rustup-init; \
chmod -R a+w $RUSTUP_HOME $CARGO_HOME; \
rustup --version; \
cargo --version; \
rustc --version;

RUN cargo install cargo-chef --locked --version ${CARGO_CHEF_TAG} \
&& rm -rf $CARGO_HOME/registry/
3 changes: 3 additions & 0 deletions contrib/intermediate-dockerfiles/py-runner
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
FROM python:3.10-alpine3.15

RUN apk add --no-cache gcc make musl-dev
35 changes: 35 additions & 0 deletions contrib/intermediate-dockerfiles/rust-alpine-builder
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
ARG ALPINE_VERSION=3.15
FROM alpine:${ALPINE_VERSION}
ARG CARGO_CHEF_TAG=0.1.41
ARG DEFAULT_RUST_TOOLCHAIN=nightly-2022-08-23

RUN apk add --no-cache \
ca-certificates \
gcc \
musl-dev

ENV RUSTUP_HOME=/usr/local/rustup \
CARGO_HOME=/usr/local/cargo \
PATH=/usr/local/cargo/bin:$PATH

RUN set -eux; \
apkArch="$(apk --print-arch)"; \
case "$apkArch" in \
x86_64) rustArch='x86_64-unknown-linux-musl' ;; \
aarch64) rustArch='aarch64-unknown-linux-musl' ;; \
*) echo >&2 "unsupported architecture: $apkArch"; exit 1 ;; \
esac; \
\
url="https://static.rust-lang.org/rustup/dist/${rustArch}/rustup-init"; \
wget "$url"; \
chmod +x rustup-init;

RUN ./rustup-init -y --no-modify-path --default-toolchain ${DEFAULT_RUST_TOOLCHAIN}; \
rm rustup-init; \
chmod -R a+w $RUSTUP_HOME $CARGO_HOME; \
rustup --version; \
cargo --version; \
rustc --version;

RUN cargo install cargo-chef --locked --version ${CARGO_CHEF_TAG} \
&& rm -rf $CARGO_HOME/registry/
16 changes: 16 additions & 0 deletions contrib/intermediate-dockerfiles/rust-builder
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
FROM ubuntu:20.04

RUN apt-get update && ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime

# Install basic packages
RUN apt-get install build-essential curl git pkg-config -y

# Install dev-packages
RUN apt-get install libclang-dev libssl-dev llvm -y

# Install Rust
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
ENV PATH="/root/.cargo/bin:${PATH}"

# Add Toolchain
RUN rustup toolchain install nightly-2022-08-23