Я довольно новичок в Docker и столкнулся с небольшой проблемой. Для моего приложения мне нужно получить некоторые зависимости в dockerfile, которые требуют времени для установки. Dockerfile по сути выглядит следующим образом:
FROM ubuntu:latest
RUN <time-consuming dependency installation>
COPY . /app
ENTRYPOINT ["/app/entrypoint.sh"]
Когда я делаю небольшое изменение в своем коде, я хотел бы иметь возможность перезапустить контейнер, не устанавливая все заново, но при повторной сборке все еще используется старый код. Восстановление без кеша работает, но требует установки ~ 10 минут (и ненужной полосы пропускания).
Есть ли способ использовать кеш для каждого шага, КРОМЕ КОПИРОВАНИЯ? Или я могу сохранить простое изображение только с зависимостями?
docker -compose.yaml выглядит так:
version: "3.7"
services:
my-app:
build:
context: '.'
ports:
- "0.0.0.0:80:8000"
Для сборки я делаю
docker-compose down
docker-compose build
docker-compose up
Но это работает, только если я добавлю --no-cache
в команду сборки.