Sign inSign up

lerwys/epics_feed

By lerwys

Updated over 3 years ago

Image
0

268

lerwys/epics_feed repository overview

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

ARG EPICS_VERSION=7.0.7
FROM lbnl-atg/epics_modules:${EPICS_VERSION}

ENV DEBIAN_FRONTEND noninteractive

# Dependencies
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        python3-dev \
        zlib1g-dev \
        libfftw3-dev \
        openssh-client \
        vim && \
    rm -rf /var/lib/apt/lists/* && \
    pip3 install \
        numpy \
        cothread

# QF2PREMONITOR
ARG QF2PREMONITOR_VERSION=R0.1.2
ARG QF2PREMONITOR_URL=https://github.com/slac-epics/QF2preMonitor/archive/refs/tags/${QF2PREMONITOR_VERSION}.tar.gz
ENV QF2PREMONITOR=${EPICS_MODULES}/QF2preMonitor-${QF2PREMONITOR_VERSION}

RUN set -e; \
    cd ${EPICS_MODULES} && \
    wget -c ${QF2PREMONITOR_URL} -O - | tar -xz && \
    cd QF2preMonitor-${QF2PREMONITOR_VERSION} && \
    echo "ASYN=${ASYN}" > configure/RELEASE.local && \
    echo "BUSY=${BUSY}" >> configure/RELEASE.local && \
    echo "AUTOSAVE=${AUTOSAVE}" >> configure/RELEASE.local && \
    echo "EPICS_BASE=${EPICS_BASE}" >> configure/RELEASE.local && \
    make -j$(nproc)

# FEED
ARG FEED_VERSION=docker-alsu
ARG [email protected]:drivers/FEED.git
ENV FEED=${EPICS_MODULES}/FEED

# Use ssh mount type to allow commands using ssh to use
# the docker build parameter "--ssh default=~/.ssh/id_ed25519".
# Need to run docker build with: DOCKER_BUILDKIT=1 docker build ...
#
# From: https://docs.docker.com/engine/reference/commandline/buildx_build
# From: https://www.fastruby.io/blog/docker/docker-ssh-keys.html
RUN --mount=type=ssh \
    set -e; \
    mkdir -p -m 0700 ~/.ssh && \
    ssh-keyscan gitlab.lbl.gov >> ~/.ssh/known_hosts && \
    cd ${EPICS_MODULES} && \
    GIT_SSL_NO_VERIFY=true git clone ${FEED_URL} ${FEED} && \
    cd ${FEED} && \
    git reset --hard ${FEED_VERSION} && \
    echo "USE_SYS_FFTW=YES" > configure/RELEASE.local && \
    echo "ASYN=${ASYN}" >> configure/RELEASE.local && \
    echo "BUSY=${BUSY}" >> configure/RELEASE.local && \
    echo "AUTOSAVE=${AUTOSAVE}" >> configure/RELEASE.local && \
    echo "SNCSEQ=" >> configure/RELEASE.local && \
    echo "QF2PREMONITOR=${QF2PREMONITOR}" >> configure/RELEASE.local && \
    echo "EPICS_BASE=${EPICS_BASE}" >> configure/RELEASE.local && \
    make

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_feed"
LABEL org.label-schema.description="Debian 11 EPICS FEED 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=deb11feed lbnl-atg/epics_feed /bin/bash"

CMD tail -f /dev/null

Tag summary

Content type

Image

Digest

sha256:d7a724558

Size

545 MB

Last updated

over 3 years ago

docker pull lerwys/epics_feed