Sign inSign up

albicans2021/rsem

By albicans2021

Updated about 1 year ago

Base image: debian:stable-slim, including RSEM v1.3.3

Image
0

110

albicans2021/rsem repository overview

Dockerfile

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

Tag summary

Content type

Image

Digest

sha256:f17b6c9ad

Size

65.8 MB

Last updated

about 1 year ago

docker pull albicans2021/rsem:1.2