• 28-11-2021, 20:19:47
    #1
    Merhabalar, bir proje için PHP cURL 7.73 versiyon ve üzeri gerekiyor. Projeyi Localde Docker üzerinde geliştirmek istiyorum.

    FROM ubuntu:20.04
    
    # Ubuntu Paket Gereksinimleri
    RUN apt-get update -y && apt-get upgrade -y
    RUN apt-get install sudo wget nano htop -y
    RUN sudo apt-get install build-essential -y
    RUN sudo DEBIAN_FRONTEND=noninteractive apt-get install lsb-release ca-certificates apt-transport-https software-properties-common -y
    
    RUN apt-get install curl -y
    RUN apt-get upgrade curl -y
    
    # cURL Yükleme
    RUN apt-get install build-essential libcurl4 openssl libssl-dev libssh-dev zlib1g-dev zlib1g libbrotli-dev brotli libkrb5-dev libldap2-dev librtmp-dev libpsl-dev libnghttp2-dev zstd libzstd-dev -y
    WORKDIR /usr/local/src
    RUN rm -rf curl*
    RUN wget https://curl.haxx.se/download/curl-7.78.0.tar.gz
    RUN tar -xzvf curl-7.78.0.tar.gz && rm -f curl-7.78.0.tar.gz
    WORKDIR /usr/local/src/curl-7.78.0
    RUN ./configure --prefix=/usr/local --with-ssl --with-nghttp2 --with-libzstd --with-libssh --with-curl
    RUN make -j4
    RUN sudo make install
    RUN sudo ldconfig
    
    # PHP Kurulumu
    RUN sudo add-apt-repository ppa:ondrej/php
    RUN sudo apt-get install -y php8.0 php8.0-dev
    
    # Mongo DB Kurulumu
    RUN sudo apt-get install -y autoconf pkg-config libssl-dev
    RUN pecl install mongodb
    RUN touch /etc/php/8.0/cli/conf.d/docker-php-ext-mongodb.ini
    RUN echo extension=mongodb > /etc/php/8.0/cli/conf.d/docker-php-ext-mongodb.ini
    # Apache
    RUN touch /etc/php/8.0/apache2/conf.d/docker-php-ext-mongodb.ini
    RUN echo extension=mongodb > /etc/php/8.0/apache2/conf.d/docker-php-ext-mongodb.ini
    
    # Redis Kurulumu
    RUN pecl install redis
    RUN touch /etc/php/8.0/cli/conf.d/docker-php-ext-redis.ini
    RUN echo extension=redis > /etc/php/8.0/cli/conf.d/docker-php-ext-redis.ini
    # Apache
    RUN touch /etc/php/8.0/apache2/conf.d/docker-php-ext-redis.ini
    RUN echo extension=redis > /etc/php/8.0/apache2/conf.d/docker-php-ext-redis.ini
    
    # Zstd Kurulumu
    RUN pecl install zstd
    RUN touch /etc/php/8.0/cli/conf.d/docker-php-ext-zstd.ini
    RUN echo extension=zstd > /etc/php/8.0/cli/conf.d/docker-php-ext-zstd.ini
    # Apache
    RUN touch /etc/php/8.0/apache2/conf.d/docker-php-ext-zstd.ini
    RUN echo extension=zstd > /etc/php/8.0/apache2/conf.d/docker-php-ext-zstd.ini
    
    # GD Yükleme
    RUN sudo apt-get install zlib1g-dev libpng-dev -y
    RUN sudo apt-get install php8.0-gd -y
    
    # mbstring
    RUN sudo apt-get install php8.0-mbstring -y
    
    # PHP cURL
    RUN sudo apt-get install php8.0-curl -y
    
    # Apache
    WORKDIR /var/www
    COPY "./000-default.conf" "/etc/apache2/sites-enabled/000-default.conf"
    
    EXPOSE 80
    RUN a2enmod rewrite
    RUN service apache2 restart
    CMD apachectl -D FOREGROUND
    Dockerfile yukarıdaki gibidir. Bu Dockerfile'i Windows ortamında build ettiğimde /var/www/public/index.php 'de phpinfo(); yaptığımda cURL versiyon 7.78 olarak gözükmekte.
    Aynı dosya Mac M1 bilgisayarımda build edildiğinde ise cURL versiyon 7.68 olarak görmekte.

    Ubuntu Bash'de curl -V komutu uyguladığımda ise curl 7.78 olarak görmekteyim.

    Enteresan bir problem aslında. Windowsta sorunsuz macte böyle bir problem ile karşı karşyayım. Bilgisi olan var mı?
  • 29-11-2021, 02:55:03
    #2
    MAC M1 arm64 işlemci olduğu için o kısımda bir farklılık oluşuyordur. Örneğin arm64 için 7.68 build edilmişken amd64 için 7.78 build edilmiştir.