Docker、というかPCについてもいまいち理解できていない初心者です。いくつか疑問があるので相談したいです。
前提・実現したいこと
将来的にフロントがReact(create-react-app, Hooks, Redux Toolkit, Tailwind CSS, Typescript等)、バックエンドがRails APIのWebアプリを就活用ポートフォリオとして、Docker上で開発したいと思ってます。
お聞きしたいのは、ReduxやTailwind CSS(その他様々なライブラリ)を含めたDocker開発環境(コンテナ?)を作るにはどうすればいいか、ということです。
質問
・docker-compose.ymlにおいて、commandにnpm install tailwindcss
みたいな感じで記述すればいいのでしょうか?それとも、dokcer-compose up -dしたコンテナの中に入り、そこで普通にnpm install tailwindcss
すればいいのでしょうか?
備考
DockerでRuby on Rails + Reactを別々にアプリ作成する環境構築手順
上の記事では、ルートプロジェクトの下にapiフォルダ、frontフォルダ、docker-compose.ymlを作成し、
dockercomposeyml
1version: '3' 2 3services: 4 db: 5 image: postgres 6 volumes: 7 - postgres-data:/var/lib/postgresql/data 8 api: 9 build: 10 context: ./api/ 11 dockerfile: Dockerfile 12 command: /bin/sh -c "rm -f /myapp/tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" 13 image: rails:dev 14 volumes: 15 - ./api:/myapp 16 - ./api/vendor/bundle:/myapp/vendor/bundle 17 environment: 18 TZ: Asia/Tokyo 19 RAILS_ENV: development 20 ports: 21 - 3000:3000 22 depends_on: 23 - db 24 front: 25 build: 26 context: ./front/ 27 dockerfile: Dockerfile 28 volumes: 29 - ./front:/usr/src/app 30 command: sh -c "cd react-sample && yarn start" 31 ports: 32 - "8000:3000" 33volumes: 34 postgres-data: 35 driver: local
frontフォルダに
Dockerfile
1FROM node:8.16.0-alpine 2WORKDIR /usr/src/app
を作成したうえで、
project-folder $ docker-compose run --rm front sh -c "npm install -g create-react-app && create-react-app react-sample"
を実行してください、とあります。
この記事を再現して出来上がるfrontコンテナの中では、今のところ普通のReactしか使えず、Redux ToolkitやTailwind CSS、Material-UI、SASS等を使いたければそれらを一つずつコンテナにnpm install
する必要がある(typescriptに関してはcreate-react-appするときに特定のコマンドを指定するわけなので必要ない(?))と思っていますがこの認識は正しいでしょうか。
また、その方法を調べているうちに次の記事に辿り着き、
Reactの開発環境をDockerで構築(その2)
docker-compose.ymlのcommandに次のように書くアイデアが浮かんだのですがこれも正しいでしょうか?
front: command: sh -c "cd react-sample && npm install tailwindcss && npm install redux ... && yarn start"
初歩的な質問で恐縮です。Dockerに詳しい方、助けてください。
回答1件
あなたの回答
tips
プレビュー