Динамически установить переменную env в DockerFileLinux

Ответить
Anonymous
 Динамически установить переменную env в DockerFile

Сообщение Anonymous »

Я создаю многоартное изображение Docker в GA, используя действие Build and Push как:
- name: Build and push
uses: docker/build-push-action@v6
with:
context: my-dir
push: true
tags: myrepo.io/my-registry/my-app:${{ github.event_name == 'repository_dispatch' && github.event.client_payload.latest_ver || github.event.inputs.certified_version }}-multiarch
file: Dockerfile_multiarch
platforms: linux/amd64,linux/arm64
provenance: false

В Dockerfile я хочу установить значение LD_PRELOAD even ld_preload =/usr/lib/$ {arch} -linux-gnu/libjemalloc.so.2 , где Arch может быть с x86_64 или aArch64 . Установка этой переменной env внутри блока run не работает, потому что эта переменная теряется на этом блоке. Как я могу динамически установить эту Env var?FROM ubuntu:20.04

ENV DEBIAN_FRONTEND noninteractive

# Install required packages and dependencies for RPM
RUN apt-get update && \
apt-get install -y wget curl vim less git python3 linux-tools-common sysstat procps libjemalloc-dev gnupg && \
rm -rf /var/lib/apt/lists/*

ENV JAVA_HOME="/usr/lib/jvm/java-21-amazon-corretto"
ENV PATH=$JAVA_HOME/bin:$PATH

//todo: How can I do this?
ENV LD_PRELOAD=/usr/lib/${ARCH}-linux-gnu/libjemalloc.so.2


Подробнее здесь: https://stackoverflow.com/questions/794 ... dockerfile
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»