Linux - Docker kurulumu, Lucee ve Apache Container Yönetimi


Docker, uygulamaların hızlı bir şekilde oluşturulmasına, test edilmesine ve dağıtılmasına olanak tanıyan bir yazılım platformudur. Docker; yazılımı, kitaplıklar, sistem araçları, kod ve çalışma zamanı da dahil olmak üzere yazılımın çalışması için ihtiyaç duyduğu her şeye sahip olan konteynerler adı verilen standart birimler halinde paketler. Bu makalede Linux Ubuntu üzerinde Docker kurulumu, Docker Compose dosyasıyla Lucee ve Apache containerlerinin yönetiminin ve Workcloud ile kurulumunun nasıl yapılacağı tarif edilir.



Docker Kurulumu

Çalışmalara başlamadan önce sunucu üzerinde önceden yapılmış bir docker kurulumu varsa bu kurulum kaldırılmalıdır. Bunun için aşağıdaki komut çalıştırılabilir.

Komut:

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done



Docker kurulumu için aşağıdaki komutlar sırasıyla çalıştırılmalıdır.

    1. Docker paketleri apt paket yöneticisiyle indirilir.

  • sudo apt-get update

  • sudo apt-get install ca-certificates curl

  • sudo install -m 0755 -d /etc/apt/keyrings

  • sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

  • sudo chmod a+r /etc/apt/keyrings/docker.asc

    2. Apt paket yöneticisine docker reposu tarif edilir.

  • echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  • sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • sudo apt-get update

    3. Docker paketlerinin kurulumu başlatılır.

  • sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

    4. Docker kurulumu doğrulanır.

  • docker –version
  • docker compose version


Docker ve Compose yönetiminde kullanılan komutlar

  • Tüm container listesini çeker.
    Komut: docker ds / docker container ls
  • Docker servisini yeniden başlatır.
    Komut: sudo systemctl restart docker
  • Docker servisini yeniler.
    Komut: sudo systemctl reload docker
  • Compose yeniden başlatır.
    Komut: docker compose restart
    Komut: docker compose restart apache2
  • Container içerisine girer.
    Komut: docker compose exec apache bash



Docker kurulumları tamamlandıktan sonra proje dizini oluşturulur, DockerFile, ve docker- compose.yml dosyaları oluşturulur.

    1. Docker compose dizini oluşturulur: lucee-apache-docker

    2. İçerisinde 2 adet uygulama klasörü oluşturulur ve ayrı ayrı Dockerfile eklenir.

  • apache

  • lucee

    3. docker-compose.yml dosyası oluşturulur ve container ayarları tarif edilir. Compose dosyasının içeriği aşağıdaki gibi olmalıdır.

services: 
  apache:
    build: ./apache
    image: ubuntu/apache2:latest
    container_name: apache-app
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./webroot:/var/www
      - ./apache/apache2.conf:/etc/apache2/apache2.conf
      - ./apache/sites-available:/etc/apache2/sites-available
      - ./apache/bash/start-apache.sh:/usr/local/bin/start-apache.sh
      - ./apache/bash/enable-sites.sh:/usr/local/bin/enable-sites.sh
    entrypoint: ["/usr/local/bin/start-apache.sh","/usr/local/bin/enable-sites.sh"]
    depends_on:
      - lucee
    networks:
      - app-network
  lucee:
    build: ./lucee
    image: lucee/lucee:6.0
    container_name: lucee-app
    ports:
      - "8888:8888"
    volumes:
      - ./webroot:/var/www
      - ./lucee/tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml
      - ./apache/sites-available:/etc/apache2/sites-available
    environment:
       - LUCEE_ADMIN_PASSWORD=qwerty
    networks:
      - app-network
networks:
  app-network:
    driver: bridge

    4. Aynı dizinde webroot klasörü oluşturulur ve bu klasör içerisine workcloud isimli bir klasör açılarak, workcloud reposu clone yapılır.


Bu işlemler tamamlandıktan sonra dizin yapısı aşağıdaki gibi olacaktır.



Apache Ayarları

    1. apache DockerFile oluşturulur: DockerFile içeriği aşağıdaki gibi olmalıdır;

        Aşağıdaki koda göre;
        apache2 son sürüm docker image kurulur.
        apt, ca-certificates, curl ve git paketleri yüklenir.
        mod_cfml dosyaları container içerisine kopyalanır.
        a2enmod, ssl, rewrite, proxy ve mod_cfml paketleri aktif edilir.

    FROM ubuntu/apache2:latest 
    RUN apt-get update && apt-get install -y ca-certificates curl git
    COPY ./mods-available/mod_cfml.so /usr/lib/apache2/modules/mod_cfml.so
    COPY ./mods-available/mod_cfml.load /etc/apache2/mods-available/mod_cfml.load
    COPY ./mods-available/mod_cfml.conf /etc/apache2/mods-available/mod_cfml.conf
    # Modülleri etkinleştir
    RUN a2enmod ssl rewrite proxy proxy_http headers mod_cfml

    2. apache2.conf dosyası oluşturularak standart bir apache2.conf dosyası bu dosyanın içeriğine yazılır.

    3. apache2 lucee proxy ayarları yapılır: apache2.conf dosyasının en altına aşağıdaki kodlar eklenir.

    ProxyPreserveHost On 
    ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ http://lucee-app:8888/$1$2
    ProxyPassMatch ^/(.+\.cfml)(/.*)?$ http://lucee-app:8888/$1$2
   
    ProxyPassReverse / http://lucee-app:8888/
    RequestHeader set X-Forwarded-Proto "http"



Lucee Ayarları

    1. Lucee DockerFile oluşturulur: DockerFile içeriği aşağıdaki gibi olmalıdır.

        Aşağıdaki koda göre;
        Lucee’nin 6.0 sürümü yüklenir.
        apt, ca-certificates, curl ve git paketleri yüklenir.
        Lucee tomcat konfigürasyon ayarları container içerisine kopyalanır.

        FROM lucee/lucee:6.0RUN apt-get update && apt-get install -y ca-certificates curl git
        COPY ./tomcat/lib/mod_cfml-valve_v1.1.11.jar /usr/local/tomcat/lib/mod_cfml-valve_v1.1.11.jar
        COPY ./tomcat/lib/servlet-filter-utils-1.1.1.jar /usr/local/tomcat/lib/servlet-filter-utils-1.1.1.jar

Tüm klasörleme ve dosyalama sonucunda oluşan dizin yapısı aşağıdaki gibi olmalıdır.

Geri Bildirim

Bu içeriği faydalı buldunuz mu?
İlişkili İçerikler