1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Docker】React+nginxを作る

Last updated at Posted at 2022-12-21

前回、React+Nginxの環境を作ったはいいもののbuildにすごく時間がかかり、なかなかうまくいかなかったので再度挑戦してみた

手順↓
1. いつも通り、Reactプロジェクトを作成
今回はreact-appとして作成します(typescriptで作ります)
yarn create react-app react-app --template typescript

2. 作成した、ReactプロジェクトにDockerfileを作成
(react-appのフォルダの中にDockerfileを作成)

Dockerfile
FROM node:lts-alpine

WORKDIR /app
COPY package.json .

RUN npm install
# build時間が短くなる
COPY . .
CMD ["npm", "start"]

3. buildする
docker build -t react-app .でビルド
※.を忘れないように!!!

4. docker runで動かす
docker run --rm -p 8080:3000 react-app
8080番で動かします

ポートの意味はこちらから
Docker runでportオプション(-p 8080:8080)や-dオプションする意味〜初心者向けにコマンドの解説〜

http://localhost:8080/に接続してみると
image.png

コードを変えたのでHello React!!!と表示されました!!

5. nginxの環境を作成する
Dockerfileと同じ場所にDockerfile_Productionを作成する

Dockerfile_Production
FROM node:lts-alpine as builder

WORKDIR /app
COPY package.json .

RUN npm install
# build時間が短くなる
COPY . .
RUN npm run build

FROM nginx:alpine
COPY --from=builder /app/build /usr/share/nginx/html

6. buildする
docker build -t react-app:nginx -f Dockerfile_Production .でビルド
※.を忘れないように!!!

:nginxでタグ付け、Dockerfileの指定で作成したDockerfile_Productionを選択します。

7. docker runで動かす
docker run --rm -p 8081:80 react-app:nginx
最後のreact-app:nginxで作ったものを指定します
ポートは先ほどと同じものを使えないので8081とします

http://localhost:8081/に接続してみると
image.png
表示されました。Hello React nginx!!!にコードを変更したのでそれが表示されています。

以上、DockerでReact+nginxを動かす方法でした

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?