前提
- フロントエンド開発(webpack,react ...)でのフォルダ構成について聞きたい(特にバンドル後のフォルダ構成)
- それに対応したDockerファイルを作りたいです。
Atomic Designは保守しにくそうなので使用はしません。
またreactのdocumentには、最初は何もフォルダを分けずに開発し、
分けたくなったら好きなように分ければいいと書いてありましたが、
あえて先にフォルダ構成を考えています。
そもそもフロントにdockerが必要なのか?などの指摘は大丈夫です。
実際のコード
現在イメージしているディレクトリ構造
app/frontend/ | |-build/(webpackでバンドルされたjsファイル群) | |- |-src/ | |-fetures(機能ごとに分けるフォルダ) | | | |-components(fetures以下共通で使うコンポ-ネントフォルダ) | | | |-hooks(fetures以下共通で使うhookフォルダ) | | | |-functions(fetures以下共通で使う関数フォルダ) | | | |-providers(プロバイダーを入れるフォルダ) | | | |-routes(ルートを入れるフォルダ) | | | |-pages(各ページが入る) | | | |-assets(画像などを入れるフォルダ) | | | |-test(テスト用フォルダ) | |-package.json | . | . webpack.common.jsなどの設定ファイル群 | . |-Dockerfile |-.dockerignore
大体こんな感じのイメージです。
一番聞きたいのはバンドル後のbuildフォルダをふつうはどのように構成するのかわからないです。
他ももし何かもっとうまく保守できるTipsがあると教えていただきたいです。
現在作成中のDockerfile
FROM node:18.9.0-alpine3.15 AS build-frontend ENV NODE_ENV=development WORKDIR /app/frontend COPY package.json . COPY package.lock.json . RUN npm install COPY ./frontend . EXPOSE 3000 //何をベースイメージにすればいいのか不明 FROM ? WORKDIR /app/frontend //フォルダ構成がよくわかってないのでこれでいいのかわからない COPY --from build-frontend ./frontend/build /src CMD ["npm", "start"]
Dockerfileで聞きたいこと(いろいろなサイトとかgithubとか見ました)
-
マルチステージビルドの使い方があっているのか
-
CMD ["npm", "start"]としているがgithubでこれしている人が多かったというだけで使っていて本来の意図した使い方がわからない(CMDが何をするコマンドなのかは理解しています。)
-
マルチステージビルドのベースイメージの選定がよくわからない
間違っている記述や、他にも付けたしたほうがいいコマンドがあれば教えていただきたいです。
ex. Dockerfile内で一般ユーザーを作るべきなど...
よろしくお願いします。
あなたの回答
tips
プレビュー