基本イメージを変更する必要を回避し、変更を適用するためにアプレットコンテナを再構築する方法は?

基本イメージを変更する必要を回避し、変更を適用するためにアプレットコンテナを再構築する方法は?

2つの別々のプロジェクトがあります。 1つ目は複数の小規模プロジェクト間で共有される基本コードで、2つ目は一部の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

いくつかのアイデアや提案を受けることができますか?

ベストアンサー1

おすすめ記事