Sign inSign up

lerwys/epics_base

By lerwys

Updated over 3 years ago

EPICS base

Image
0

180

lerwys/epics_base repository overview

# Author: Lucas Russo
# LBNL: Lawrence Berkeley National Lab

FROM debian:11-slim

ARG INSTALL_PREFIX=/usr/local
ARG TZ=America/Los_Angeles

ENV DEBIAN_FRONTEND noninteractive

# Set correct timezone
ENV TZ ${TZ}
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# Dependencies
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        build-essential \
        ca-certificates \
        gettext-base \
        git \
        libpcre3-dev \
        libreadline-dev \
        tzdata \
        python3 \
        python3-pip \
        python-is-python3 \
        wget && \
    rm -rf /var/lib/apt/lists/* && \
    dpkg-reconfigure --frontend noninteractive tzdata

# EPICS Base
ARG EPICS_VERSION=7.0.7
ENV EPICS_HOST_ARCH linux-x86_64
ENV INSTALL_LOCATION=${INSTALL_PREFIX}/epics/${EPICS_VERSION}
ENV EPICS_BASE ${INSTALL_LOCATION}/base
ENV EPICS_MODULES ${INSTALL_LOCATION}/modules
ENV EPICS_EXTENSIONS ${INSTALL_LOCATION}/extensions
ENV PATH ${EPICS_BASE}/bin/${EPICS_HOST_ARCH}:${PATH}
ENV EPICS_CA_AUTO_ADDR_LIST YES
ENV EPICS_CA_MAX_ARRAY_BYTES 100000000
ENV PYEPICS_LIBCA ${EPICS_BASE}/lib/${EPICS_HOST_ARCH}/libca.so

ARG EPICS_BASE_URL=https://epics.anl.gov/download/base/base-${EPICS_VERSION}.tar.gz

RUN set -e; \
    mkdir -p ${INSTALL_LOCATION} && \
    cd ${INSTALL_LOCATION} && \
    wget -c ${EPICS_BASE_URL} -O - | tar -xz && \
    ln -sf base-${EPICS_VERSION} base && \
    cd base-${EPICS_VERSION} && \
    make -j$(nproc) && \
    echo "${EPICS_BASE}/lib/${EPICS_HOST_ARCH}" > /etc/ld.so.conf.d/epics.conf && \
    ldconfig

RUN set -e; \
    mkdir -p ${EPICS_MODULES} \
    mkdir -p ${EPICS_EXTENSIONS}

ARG EPICS_EXTENSIONS_URL=https://github.com/epics-extensions/extensions.git

# EPICS extensions
RUN set -e; \
    git clone ${EPICS_EXTENSIONS_URL} ${EPICS_EXTENSIONS} && \
    cd ${EPICS_EXTENSIONS} && \
    sed -i -e " \
        /EPICS_BASE *=/ { \
            s|.*|EPICS_BASE = ${EPICS_BASE}|; \
        }" \
        configure/RELEASE && \
    sed -i -e " \
        /X11_LIB *=/ { \
            s|.*|X11_LIB = /usr/lib/x86_64-linux-gnu|; \
        }" \
        -e " \
        /MOTIF_LIB *=/ { \
            s|.*|MOTIF_LIB = /usr/lib/x86_64-linux-gnu|; \
        }" \
        configure/os/CONFIG_SITE.${EPICS_HOST_ARCH}.${EPICS_HOST_ARCH}

ARG VCS_REF
ARG BUILD_VERSION

LABEL org.label-schema.schema-version="1.0"
LABEL org.label-schema.vcs-ref=$VCS_REF
LABEL org.label-schema.name="lbnl-atg/epics_base"
LABEL org.label-schema.description="Debian 11 EPICS base docker image"
LABEL org.label-schema.url="https://gitlab.lbl.gov/drivers/FEED"
LABEL org.label-schema.version=$BUILD_VERSION
LABEL org.label-schema.docker.cmd="docker run -it --rm --name=deb11epics lbnl-atg/epics_base /bin/bash"

CMD tail -f /dev/null

Tag summary

Content type

Image

Digest

sha256:8a3eb81e4

Size

448.3 MB

Last updated

over 3 years ago

docker pull lerwys/epics_base