PankovAlxndr
@PankovAlxndr
Fullstack web developer

Как переопределить аргументы при запуске контейнера?

Здравствуйте, для личных нужд я набросал образ с php-fpm и нужными мне расширениями, загрузил на докерхаб
FROM php:8.2-fpm-alpine3.18

LABEL authors="pankovalxndr"

ARG UID
ARG GID
ARG USER

ENV XDEBUG_VERSION 3.2.2
ENV UID=${UID}
ENV GID=${GID}
ENV USER=${USER}
ENV TZ Europe/Moscow
....


Основная мысль была сделать удобную конфигурацию юзера, группы, для этого указал аргументы (см выше).
Так как у каждого на дев машине свои параметры юзера и группы и чтобы не было проблем с правами при монтированиии файлов, я решил сделать конфигурацию изменяемой ( ну + еще там сам пул fpm работает от имени переданного юзера)

сбилдил я так
docker --log-level=debug build --no-cache --pull \
	--build-arg="UID=1000" \
	--build-arg="GID=1000" \
	--build-arg="USER=app" \
	--file=Dockerfile \ ................


Все хорошо, но как мне теперь переопределить мои аргументы?, использую этот контейнер где-то на другой дев машине.
пробовал так и не выходит:
php:
        build:
            context: ./
            args:
                UID: 1001
                GID: 1002
                USER: foobar
        image: pankovalxndr/fpm:develop-1
        environment:
            APP_ENV: ${APP_ENV}
            APP_DEBUG: ${APP_DEBUG}
            APP_URL: ${APP_URL}
        extra_hosts:
            - host.docker.internal:host-gateway
        volumes:
            - ./:/application
        depends_on:
            - mysql

CMD и ENRTYPOINT есть, указаны в родительском образе https://github.com/docker-library/php/blob/master/...

как я понял инструкция CMD предоставляет аргументы по умолчанию для инструкции ENTRYPOINT.
но как мне туда вклиниться и надо ли мне туда, обе эти инструкции в родительском образе?
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0
Миллиардер, филантроп, патологический лгун
В докере есть аж семь мест, откуда берутся переменные, каждое со своим приоритетом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы