Есть такой Dockerfile: ставятся зависимости и копируются в основной образ на основе Nginx unit. Проблема в том, что переменные окружения передаются только процессу unitd, но их нет, когда подключаешься к контейнеру и пытаешься выполнить какой-нибудь php artisan migrate. Как передать переменные окружения другому процессу в контейнере?
ARG COMPOSER_VERSION=2.5.4
ARG UNIT_VERSION=1.29.1-php8.1
ARG PHP_VERSION=8.1-cli
ARG NODE_VERSION=18.15.0-alpine3.17
FROM composer:${COMPOSER_VERSION} as composer_builder
WORKDIR /deps
COPY composer.json .
COPY composer.lock .
RUN composer install --optimize-autoloader --prefer-dist --no-ansi --no-interaction --no-progress --no-scripts
FROM node:${NODE_VERSION} as node_builder
WORKDIR /deps
COPY package.json .
COPY package-lock.json .
COPY vite.config.ts .
COPY postcss.config.js .
COPY tailwind.config.js .
COPY resources resources
RUN npm ci && npm run build
FROM alpine:3.17 as base
WORKDIR /app
COPY . .
COPY --from=composer_builder /deps/vendor vendor
COPY --from=node_builder /deps/public/build public/build
FROM nginx/unit:${UNIT_VERSION} as api
ARG USER=backend
ARG GROUP=backend
RUN groupadd --gid 1000 ${GROUP} && \
useradd --uid 1000 --gid ${GROUP} --shell /bin/bash --create-home ${USER}
ENV TZ=UTC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
WORKDIR /app
# TODO: Change public folder permissions
COPY --from=base --chown=${USER}:${GROUP} --chmod=777 /app .
COPY build/unit/config.json /docker-entrypoint.d/config.json
COPY build/unit/php.ini /etc/php.ini
RUN apt-get update && \
apt-get install -y libpq-dev && \
docker-php-ext-install pgsql pdo_pgsql opcache && \
apt-get --purge -y remove gcc make && \
apt-get -y autoremove && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN php artisan config:cache && \
php artisan route:cache && \
php artisan view:cache && \
php artisan optimize
EXPOSE 80