Docker Container da Angular Projesi Çalıştırma

  1. ibrahim
    21
    531
    24.02.2020 15:27:00

    Angular uygulamasını uzak linux/ubuntu server da ki Docker'a nasıl deploy edebilirim, çalıştırabilirim ?

    Aşağıdaki gibi çalışan Angular projem var, test amaçlı oluşturdum, çalıştırdım. Docker'da çalıştırmak istiyorum, bir şeyler yaptım, ama sonunu getiremedim

    angular app run on docker container

    angular docker linux ubuntu-server 1 yıl önce 725 Görüntüleme

( 1 ) Cevap

  1. mfatih
    19
    4713
    25.02.2020 10:28:00

    Docker Hub a imagei push edip sonra pull edebilirsin.

    Bunun için;

    1) Docker Desktop kurulu olmalı. https://www.docker.com/products/docker-desktop

    2)Docker Hup da hesap oluşturmalı ve aynı zamanda hesabınızda bir Repository oluşturmanız lazım. https://hub.docker.com/

    3) Docker Desktop üzerinde Docker Hub hesabınız ile oturum açmanız lazım.

    4) Node.js ve Angular cli zaten vardır diye tahmin ediyorum local pcnizde.

    İmage oluşturup(Build Image) push etmeye hazırız.

    1) Angular projemizin root directory sine Dockerfile adında bir dosya ekliyoruz. Visual Studio Code kullananlar, root dizine sağ tıklayıp New File diyerek bu işlemi gerçekleştirebilirler.

    Ve dosyanın içine bu kodları yerleştiriyoruz.

    FROM node:alpine AS builder
    
    WORKDIR /app
    
    COPY . .
    
    RUN npm install && \
        npm run build
    
    FROM nginx:alpine
    
    COPY --from=builder /app/dist/* /usr/share/nginx/html/
    

    2) Docker İmage Build işlemi için aşağıdaki komutu Powershell yada Visual Studio Code kullanıyorsak terminalden çalıştırıyoruz.

    docker build -t my-angular-app:v1 .
    

    3) İkinci adım biraz uzun sürebilir. Bittikten sonra Image imiz build olmuşmu kontrol etmek için yine terminalden şu komutu çalıştırıyoruz.

    docker images
    

    4) Üçüncü adımda ki komut şöyle bir sonuç verecek, Image imizi en üstte görebiliriz.

    REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
    my-angular-app                   v1                  e99bb948a152       25 minutes ago      37.4MB
    <none>                          <none>              1981413992cc        25 minutes ago      506MB
    av-app-image                    latest              6512695f3361        58 minutes ago      21.2MB
    

    5) Şimdi localimizdeki Image i Docker Hub a Push etmek için Tag lıyoruz, bir versiyon numarası versek daha güzel olur, V1, V2 vb gibi, Dockerda ilerde yapılacak her bir update için güzel olur. İlgili IMAGE_ID yi giriyoruz.

    docker tag e99bb948a152 Yourhubusername/YourRepositoryName:V1
    

    6) Taglama işlemini yaptıktan sonra Imageimizi Push ediyoruz.

    docker push Yourhubusername/YourRepositoryName:V1
    

    7) Buraya kadar Imageimizi build edip Docker Hub a push ettik. Şimdi Ubuntu Server yada uzak sunucudaki Docker Container a pull edip run edelim.

    Burada SSH ile nasıl Docker Container a bağlanılıp, yapıldığı ile ilgili bir cevap var ;

    https://code.replyfeed.com/sorular/6112/aspnet-core-web-uygulamasini-dockerda-calistirma-dockera-deploy-etme

    Kısaca yazayım yinede adımları;

    Powershell den SSH ile Docker Container a bağlanıyoruz

     ssh [email protected]
    

    şifre varsa şifreyi girin.

    Ardından Imagei Docker Hubdan Pull ediyoruz.

    docker pull Yourhubusername/YourRepositoryName:V1
    

    Son olarak run ediyoruz, uygulama_adi yerine kendi uygulama isminizi girin.

    docker run -d  -p  8082:80  --name   uygulama_adi   Yourhubusername/YourRepositoryName:V1
    

    8082 portunda Angular uygulamanız çalışmaya başlayacaktır, 8082 kullanılmıyorsa.

    • yvzsrht ikinci adım da ki komutta docker build -t my-angular-app:v1 . burada yani nokta işaretini unutmayın, ben onu görmedim, bir 10 dakikamı aldı sorun :)

    • Yorum Ekleyin

Cevabınız