기본 이미지를 변경할 필요를 피하고 변경 사항을 적용하기 위해 애플릿 컨테이너를 다시 빌드하는 방법은 무엇입니까?

기본 이미지를 변경할 필요를 피하고 변경 사항을 적용하기 위해 애플릿 컨테이너를 다시 빌드하는 방법은 무엇입니까?

두 개의 별도 프로젝트가 있습니다. 첫 번째는 여러 소규모 프로젝트 간에 공유되는 기본 코드이고, 두 번째는 일부 CSS 등을 재정의하여 UI를 업데이트하는 소규모 프로젝트이지만, 이 프로젝트에는 React 또는 NextJS 코드가 전혀 포함되지 않습니다.

다음은 Dockerfile첫 번째 프로젝트에 속합니다.

FROM node:lts as builder
ENV NEXT_TELEMETRY_DISABLED 1
WORKDIR /app
COPY package*.json .
RUN npm i [email protected] -g  \
    && npm install
COPY --link . .
CMD ["npm", "run", "dev"]

이것은 docker-compose.yml:

services:
  react-app:
    container_name: react_app
    platform: linux/amd64
    build:
      context: "."
      dockerfile: local/Dockerfile.local
    ports:
      - "3000:3000"
    volumes:
      - ./app/src:/app/src
      - ./app/package.json:/app/package.json
      - ./app/package-lock.json:/app/package-lock.json
    restart: unless-stopped

보시다시피, 이는 react_app나중에 더 작은 프로젝트를 빌드하는 데 사용할 이미지를 빌드합니다 Dockerfile.

FROM react_app:latest

WORKDIR /app
COPY --link . /app/src/styles/
COPY --link ./favicon.ico /app/public/favicon.ico
CMD ["npm", "run", "dev"]

docker-compose.yml

services:
  small-app-1:
    container_name: small-app-1
    platform: linux/amd64
    image: react_app
    build:
        context: theme
        dockerfile: ../local/Dockerfile.local
    ports:
      - "11500:3000"
    volumes:
      - ./theme:/app/src/style/theme
      - ./app/package-lock.json:/app/package-lock.json
    restart: unless-stopped

(계속) 기본 이미지에 대한 코드 수준 변경을 수행한 다음 해당 변경 사항을 구현하기 위해 더 작은 프로젝트를 다시 빌드해야 했기 때문에 이 프로세스는 지루했습니다.

small-app컨테이너의 코드베이스 를 변경하는 더 좋은 방법이 있는지 궁금합니다 . 즉, 기본 이미지를 계속 빌드한 다음 변경 사항을 적용하기 위해 small-app이미지를 다시 빌드할 필요 없이 컨테이너에서 기본 코드를 편집하고 싶습니다.small-app

몇 가지 아이디어나 제안을 받을 수 있나요?

관련 정보