mirror of
https://github.com/openappsec/attachment.git
synced 2025-09-27 18:28:47 +03:00
46 lines
1.7 KiB
Docker
Executable File
46 lines
1.7 KiB
Docker
Executable File
FROM alpine
|
|
|
|
# Bash for scripting & verbose utils
|
|
RUN apk add --no-cache bash
|
|
|
|
# Where we stage attachment files
|
|
ENV ENVOY_ATTACHMENT_ROOT=/envoy/attachment
|
|
|
|
# Versioned Envoy libs directory
|
|
COPY envoy ${ENVOY_ATTACHMENT_ROOT}/versions
|
|
# Base libs
|
|
COPY lib/libnano_attachment.so ${ENVOY_ATTACHMENT_ROOT}/libnano_attachment.so
|
|
COPY lib/libshmem_ipc_2.so ${ENVOY_ATTACHMENT_ROOT}/libshmem_ipc_2.so
|
|
COPY lib/libnano_attachment_util.so ${ENVOY_ATTACHMENT_ROOT}/libnano_attachment_util.so
|
|
COPY lib/libosrc_compression_utils.so ${ENVOY_ATTACHMENT_ROOT}/libosrc_compression_utils.so
|
|
|
|
# Create the script inline; no external file needed
|
|
RUN cat >/usr/local/bin/prepare_attachment.sh <<'EOF' && chmod +x /usr/local/bin/prepare_attachment.sh
|
|
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
log() { echo "[prepare-attachment] $(date -Iseconds) $*"; }
|
|
|
|
# Require ENVOY_VERSION at runtime (fail fast with a clear message)
|
|
: "${ENVOY_VERSION:?ENVOY_VERSION env var is required (e.g., 1.27)}"
|
|
|
|
log "Starting preparation for ENVOY_VERSION=${ENVOY_VERSION}"
|
|
|
|
# Create destination and copy shared libs
|
|
mkdir -p "${ENVOY_ATTACHMENT_ROOT}/shared"
|
|
|
|
log "Copying base libs from ${ENVOY_ATTACHMENT_ROOT} to ${ENVOY_ATTACHMENT_ROOT}/shared"
|
|
cp -rv "${ENVOY_ATTACHMENT_ROOT}/lib"* "${ENVOY_ATTACHMENT_ROOT}/shared"
|
|
|
|
log "Copying versioned libs from ${ENVOY_ATTACHMENT_ROOT}/versions/${ENVOY_VERSION}"
|
|
cp -v "${ENVOY_ATTACHMENT_ROOT}/versions/${ENVOY_VERSION}/lib"* "${ENVOY_ATTACHMENT_ROOT}/shared"
|
|
|
|
log "Preparation complete. Final contents of shared:"
|
|
ls -l "${ENVOY_ATTACHMENT_ROOT}/shared" || true
|
|
|
|
log "All done."
|
|
EOF
|
|
|
|
# Run the script when the container starts (great for initContainers)
|
|
ENTRYPOINT ["/usr/local/bin/prepare_attachment.sh"]
|