elifnurkarakoç
Blog'a Geri Dön

React uygulamasına Dockerfile eklenmesi 💫

Elif Nur KarakoçElif Nur Karakoç
22 Ocak 2023
2 min read
#react18#docker#dockerfile#docker-compose#tech

Dockerfile oluşturarak React uygulamamızı Docker ile ayağa kaldırabiliriz. Bu yazımda daha önce webpack ile sıfırdan oluşturduğum React uygulamasını kullanacağım.

Docker ile ilgili yazıdığım yazılara aşağıdaki linkten ulaşabilirsin.

Dockerfile Örnek:

FROM node:19-slim
WORKDIR /src
COPY . .
RUN npm install --force
RUN npm install -g live-server
RUN npm run build
EXPOSE 8080
CMD ["live-server","build/"]
  • FROM ile node’un 19-slim versiyonu base image olarak ayarlanır.
  • WORKDIR ile çalışılcak dizin söylenir.
  • src klasöründeki herşey COPY ile aktarılır.
  • RUN ile gerekli bağımlılıklar indirildikten sonra uygulamanın build’i alınır.
  • EXPOSE ile bu image’in container olduğunda kullanıcağı port söylenir
  • CMD ile projeyi çalıştırıcak komut söylenir.

Dockerfile dosyasını oluşturduktan sonra build komutu container oluşturulur.

docker build . -t react-app

Oluşan containerı run komutu ile çalıştıralım:

docker run -p 9000:8080 react-app
  • Dışarı 9000 portu ile açılır.

http://127.0.0.1:9000/ adresinden uygulamaya erişebiliyoruz.

Docker Compose Ekleme

docker-compose.yml örnek:

version: "3.4"
services:
  react-app:
    container_name: react-app
    build: .
    ports:
      - 9000:8080
  • versionlara göre farklı davranış gösterebiliyor.
  • services altında ayrı ayrı imageler için tanımlamaları yapılır.
  • react-app altında bulunan build ile bulunduğu dizindeki Dockerfile ile build al denir.
  • container_name ile container adı tanımlanır.
  • ports ile birden fazla port tanımı yapılabilir. Bu tanımlamada 9000 üzerinden çalışır ama docker host üzerinde 8080 portunu alır.

Docker-compose dosyasının çalıştırılması için (build alır ve çalıştırır):

docker-compose up

http://127.0.0.1:9000/ adresinden uygulamaya erişebiliyoruz.

Sadece build alması için:

docker-compose build

Container kapatmak ve silmek için:

docker-compose down

Okuduğun için teşekkürler 💐

Github Proje Link

Elif