У мене склалося враження, що змінні середовища можна встановлювати в один рядок наступним чином, щоб мінімізувати посередницькі зображення.
FROM alpine:3.6
ENV RUBY_MAJOR 2.4 \
RUBY_VERSION 2.4.1 \
RUBY_DOWNLOAD_SHA256 4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654 \
RUBYGEMS_VERSION 2.6.12 \
BUNDLER_VERSION 1.15.3
Однак, запускаючи контейнер на основі цього фрагмента та викликаючи, # set |grep RU
я бачу, що змінні не призначаються окремо, а об'єднуються в єдиний рядок.
RUBY_MAJOR='2.4 RUBY_VERSION 2.4.1 RUBY_DOWNLOAD_SHA256 4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654 RUBYGEMS_VERSION 2.6.12 BUNDLER_VERSION 1.15.3'
Однак, якщо явно встановити кожну змінну, як показано нижче, я отримую очікуваний результат і помилок при виклику змінних не виникає.
ENV RUBY_MAJOR 2.4
ENV RUBY_VERSION 2.4.1
ENV RUBY_DOWNLOAD_SHA256 4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654
ENV RUBYGEMS_VERSION 2.6.12
ENV BUNDLER_VERSION 1.15.3
Питання: Чи можна поєднати встановлення змінних середовища в одному рядку? Якщо так, то як би я це зробив? І чи це хороша практика?
ENV PATH="$PATH:/app" \ APPVAR="foo"