Kurumsal ortamdaki Redhat kullanıcıları genellikle Centos üzerinde denemeler yapabilmekte olup paket depoları birbirine çok benzemektedir. Fakat yine de Redhat'e bağımlı veya onunla ilişkili bazı paketlerde problem yaşanmaktadır.
Docker imajı olarak centos imajı Ubuntu imajı kadar çok kullanılmaktadır. Fakat redhat imajları malesef ki Docker ile çok fazla kullanılmamaktadır. Bu konuda Redhat ekibi, Universal Base Images(UBI) adında, docker deposu içerisinde bir imaj dizisi oluşturdu. Bu konuda 7 ve 8 sürümleri için ubi-init, ubi ve ubi-minimal isimli 3 farklı imaj bulunmakta. Bu imajlara adresinden ulaşabilirsiniz.
Docker üzerinde bu imajları çağırmak ise oldukça kolay. Örneğin bu imajlarla beraber bir bash kabuğu açmak isterseniz aşağıdaki komutu uygulayabilirsiniz:
docker run -it --name test registry.access.redhat.com/ubi8/ubi:8.1 bash
Bu imajla oluşturduğunuz konteynıra girdiğinizde yum repolist komutu çıktısı olarak ubi-8-appstream, ubi-8-baseos ve ubi-8-codeready-builder isimli depoları görmektesiniz. Bunlara ek olarak ubi-8-appstream deposu da eklenebilmektedir.
Ve örnek bir nginx sunucusu kurulumu ile ilgili aşağıdaki dockerfile'ı inceleyerek kullanım konusunda daha verimli bir içerik sağlayabilriiz.
FROM registry.access.redhat.com/ubi8/ubi:8.1
RUN yum --disableplugin=subscription-manager -y module enable php:7.3 \
&& yum --disableplugin=subscription-manager -y install httpd php \
&& yum --disableplugin=subscription-manager clean all
ADD index.php /var/www/html
RUN sed -i 's/Listen 80/Listen 8080/' /etc/httpd/conf/httpd.conf \
&& sed -i 's/listen.acl_users = apache,nginx/listen.acl_users =/' /etc/php-fpm.d/www.conf \
&& mkdir /run/php-fpm \
&& chgrp -R 0 /var/log/httpd /var/run/httpd /run/php-fpm \
&& chmod -R g=u /var/log/httpd /var/run/httpd /run/php-fpm
EXPOSE 8080
USER 1001
CMD php-fpm & httpd -D FOREGROUND
Yazı için kullandığım kaynak: https://developers.redhat.com/blog/2020/03/24/red-hat-universal-base-images-for-docker-users/