Base image: debian:stable-slim, including RSEM v1.3.3
110
Dockerfile v1.2 (SCOUT score A)
# ========= builder =========
FROM debian:stable-slim AS builder
ARG DEBIAN_FRONTEND=noninteractive
ARG RSEM_VERSION=1.3.3
ARG RSEM_URL="https://github.com/deweylab/RSEM/archive/refs/tags/v${RSEM_VERSION}.tar.gz"
# 公式アーカイブの SHA256 を埋めてください(ご自身の環境で sha256sum を取得)
ARG RSEM_SHA256=90e784dd9df8346caa2a7e3ad2ad07649608a51df1c69bfb6e16f45e611a40dc
# build 用ツールのみ(最終イメージには持ち込まない)
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates curl build-essential \
zlib1g-dev libncurses5-dev \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /opt
# RSEM 取得・検証・ビルド
RUN set -eux; \
curl -fsSL -o rsem.tar.gz "${RSEM_URL}"; \
echo "${RSEM_SHA256} rsem.tar.gz" | sha256sum -c -; \
mkdir -p /opt/rsem-src; \
tar -xzf rsem.tar.gz -C /opt/rsem-src --strip-components=1; \
rm -f rsem.tar.gz; \
make -C /opt/rsem-src; \
# インストール先は /opt/RSEM-${RSEM_VERSION}
mkdir -p "/opt/RSEM-${RSEM_VERSION}"; \
cp -a /opt/rsem-src/* "/opt/RSEM-${RSEM_VERSION}/"
# ========= final (runtime only) =========
FROM debian:stable-slim
LABEL org.opencontainers.image.title="albicans2021/rsem" \
org.opencontainers.image.version="1.2" \
org.opencontainers.image.description="RSEM ${RSEM_VERSION} minimal runtime on Debian stable-slim" \
org.opencontainers.image.source="https://github.com/deweylab/RSEM" \
maintainer="albicans"
# tzdata は入れず、ENV だけでタイムゾーン指定(パッケージ母数を減らす)
ENV TZ=Asia/Tokyo
# ランタイムに必要な最小限(R本体やアライナは任意で別タグに)
# - libgomp1: OpenMP ランタイム(環境によっては不要だが安全のため)
# - zlib1g / libncurses5: RSEM バイナリの実行時依存
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
perl libgomp1 zlib1g libncurses6 \
bash coreutils ca-certificates \
less perl-doc \
&& rm -rf /var/lib/apt/lists/*
# RSEM 配置と PATH
ARG RSEM_VERSION=1.3.3
ENV RSEM_DIR=/opt/RSEM-${RSEM_VERSION}
COPY --from=builder ${RSEM_DIR} ${RSEM_DIR}
ENV PATH="${RSEM_DIR}:${PATH}"
# 非rootユーザー
RUN groupadd -g 1000 main && useradd -m -s /bin/bash -u 1000 -g 1000 main
USER main
WORKDIR /home/main
CMD ["rsem-calculate-expression", "--help"]
Dockerfile v1.1 (SCOUT score C)
# 1. ビルド用ステージ
FROM ubuntu:22.04 AS builder
LABEL "maintainer"="albicans" "image name"="albicans2021/rsem" "version"="1.1"
ENV RSEM_VERSION=1.3.3
ENV RSEM_DIR=/opt/RSEM-${RSEM_VERSION}
# 必要なパッケージを最小限インストール
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
build-essential \
g++ \
gcc \
make \
zlib1g-dev \
libncurses5-dev \
libncursesw5-dev \
perl \
wget \
unzip \
&& rm -rf /var/lib/apt/lists/*
# RSEM をダウンロードしてビルド
WORKDIR /opt
RUN wget https://github.com/deweylab/RSEM/archive/v${RSEM_VERSION}.tar.gz \
&& tar -zxvf v${RSEM_VERSION}.tar.gz \
&& rm v${RSEM_VERSION}.tar.gz
WORKDIR ${RSEM_DIR}
RUN make && make install
# 2. 実行用ステージ (軽量な Ubuntu ベース)
FROM ubuntu:22.04 AS runtime
ENV RSEM_VERSION=1.3.3
ENV RSEM_DIR=/opt/RSEM-${RSEM_VERSION}
# 必要最低限のランタイムパッケージをインストール
RUN apt-get update && apt-get install -y --no-install-recommends \
zlib1g \
libncurses5 \
libncursesw5 \
perl \
perl-doc \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata \
&& ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# ビルド済みの RSEM をコピー
COPY --from=builder ${RSEM_DIR} ${RSEM_DIR}
ENV PATH="${RSEM_DIR}:${PATH}"
# ユーザーの作成
RUN groupadd -g 1000 main && useradd -m -s /bin/bash -u 1000 -g 1000 main
USER main
WORKDIR /home/main
Content type
Image
Digest
sha256:f17b6c9ad…
Size
65.8 MB
Last updated
about 1 year ago
docker pull albicans2021/rsem:1.2