diff --git a/base/.env b/base/.env index 8577c8c..1857454 100644 --- a/base/.env +++ b/base/.env @@ -1,4 +1,5 @@ DEBIAN_VERSION=11.7 +ALPINE_VERSION=3.18.4 EPICS7_BASE_VERSION=7.0.7 diff --git a/base/musl/.env b/base/musl/.env new file mode 120000 index 0000000..4a82335 --- /dev/null +++ b/base/musl/.env @@ -0,0 +1 @@ +../.env \ No newline at end of file diff --git a/base/musl/Dockerfile b/base/musl/Dockerfile new file mode 100644 index 0000000..bb01a41 --- /dev/null +++ b/base/musl/Dockerfile @@ -0,0 +1,55 @@ +ARG ALPINE_VERSION + +FROM alpine:$ALPINE_VERSION + +ARG JOBS + +RUN apk add --no-cache \ + bash \ + g++ \ + libevent-dev \ + libevent-static \ + libtirpc-dev \ + libtirpc-static \ + linux-headers \ + make \ + musl-dev \ + ncurses-terminfo \ + patch \ + perl \ + rpcsvc-proto \ + gcc \ + meson \ + re2c \ + readline-dev \ + readline-static + +COPY lnls-get-n-unpack.sh /usr/local/bin/lnls-get-n-unpack +COPY lnls-run.sh /usr/local/bin/lnls-run + +ARG EPICS_BASE_VERSION +ENV EPICS_BASE_PATH /opt/epics/base +ENV EPICS_MODULES_PATH /opt/epics/modules +ENV EPICS_RELEASE_FILE /opt/epics/RELEASE + +WORKDIR /opt/epics +COPY install-functions.sh . + +COPY backport-epics-base-musl.patch . +COPY install_epics.sh . +RUN ./install_epics.sh + +ARG SEQUENCER_VERSION +ARG CALC_VERSION +ARG ASYN_VERSION +ARG STREAMDEVICE_VERSION +ARG BUSY_VERSION +ARG AUTOSAVE_VERSION +ARG SSCAN_VERSION +ARG RECCASTER_VERSION +ARG IPAC_VERSION +ARG CAPUTLOG_VERSION + +WORKDIR ${EPICS_MODULES_PATH} +COPY install_modules.sh . +RUN NEEDS_TIRPC=YES ./install_modules.sh diff --git a/base/musl/docker-compose.yml b/base/musl/docker-compose.yml new file mode 100644 index 0000000..1e41242 --- /dev/null +++ b/base/musl/docker-compose.yml @@ -0,0 +1,24 @@ +services: + epics-base: + image: ${REGISTRY:-ghcr.io/cnpem}/lnls-alpine-3.18-epics-7:$TAG + build: + context: ../ + dockerfile: musl/Dockerfile + labels: + org.opencontainers.image.revision: ${TAG} + org.opencontainers.image.source: ${SOURCE:-https://github.com/cnpem/epics-in-docker} + org.opencontainers.image.description: "EPICS base and modules build image for fully static executables" + args: + JOBS: ${JOBS:-1} + ALPINE_VERSION: ${ALPINE_VERSION} + EPICS_BASE_VERSION: ${EPICS7_BASE_VERSION} + SEQUENCER_VERSION: ${SEQUENCER_VERSION} + CALC_VERSION: ${CALC_VERSION} + ASYN_VERSION: ${ASYN_VERSION} + STREAMDEVICE_VERSION: ${STREAMDEVICE_VERSION} + BUSY_VERSION: ${BUSY_VERSION} + AUTOSAVE_VERSION: ${AUTOSAVE_VERSION} + SSCAN_VERSION: ${SSCAN_VERSION} + RECCASTER_VERSION: ${RECCASTER_VERSION} + IPAC_VERSION: ${IPAC_VERSION} + CAPUTLOG_VERSION: ${CAPUTLOG_VERSION}