Кеширование и секреты: я использую секреты комплекта сборки Docker (--mount=type=secret), чтобы передать свой токен GitHub для установки композитора. Однако каждый раз, когда я меняю секретный или даже некоторые несвязанные файлы, уровень установки композитора перезапускается, что очень медленно. Как я могу гарантировать, что установка композитора останется в кэше, пока композитор.lock не будет изменен, даже при использовании секретов?
Безопасное многоуровневое представление: я хочу, чтобы учетные данные частного репозитория никогда не попадали в окончательный образ или историю промежуточного уровня.
Вот моя текущая структура Dockerfile:
Код: Выделить всё
Dockerfile
# syntax=docker/dockerfile:1
FROM php:8.2-fpm-alpine AS builder
WORKDIR /app
# Install system dependencies
RUN apk add --no-cache git unzip
# Copy dependency files
COPY composer.json composer.lock ./
# The problem layer:
RUN --mount=type=secret,id=composer_auth,target=/root/.composer/auth.json \
composer install --no-dev --optimize-autoloader --no-scripts
COPY . .
# Final Stage
FROM php:8.2-fpm-alpine
COPY --from=builder /app /var/www
Существует ли особый способ монтирования секрета, чтобы он не делал недействительным кеш без необходимости?
Должен ли я использовать отдельный RUN для монтирования кеша (type=cache,target=/root/.composer/cache) наряду с монтированием секрета?
Мобильная версия