Guides for installing php extensions from php-alpine dockerfile?












-1














Hi I'd appreciate some feedback as I'm new in docker. I'm trying to create some php images from php-alpine in order to use for my personal local development (so it won't be really something I'm planing to use in production) for my Laravel or any other PHP applications.



This is the Dockerfile I'm creating



FROM php:7.2-fpm-alpine

# TODO - Install various PHP extensions
RUN pecl install redis
&& pecl install xdebug
&& docker-php-ext-enable redis xdebug

# Install Composer
RUN apk update && apk add curl &&
curl -sS https://getcomposer.org/installer | php
&& chmod +x composer.phar && mv composer.phar /usr/local/bin/composer

WORKDIR /var/www/html

RUN chmod +x artisan

RUN composer dump-autoload --optimize && composer run-script post-install-cmd

CMD php artisan serve --host 0.0.0.0 --port 8000


but I'm struggling a little bit to find out how to install various PHP extensions. I've gone through the official documentation, but its a little bit hard to follow as I don't think it has many details.



Is there a gist or any other source available that gives details for how to install all available extensions for each php version, how to make php ini overwrites or if any additional config files required for an extension etc?










share|improve this question



























    -1














    Hi I'd appreciate some feedback as I'm new in docker. I'm trying to create some php images from php-alpine in order to use for my personal local development (so it won't be really something I'm planing to use in production) for my Laravel or any other PHP applications.



    This is the Dockerfile I'm creating



    FROM php:7.2-fpm-alpine

    # TODO - Install various PHP extensions
    RUN pecl install redis
    && pecl install xdebug
    && docker-php-ext-enable redis xdebug

    # Install Composer
    RUN apk update && apk add curl &&
    curl -sS https://getcomposer.org/installer | php
    && chmod +x composer.phar && mv composer.phar /usr/local/bin/composer

    WORKDIR /var/www/html

    RUN chmod +x artisan

    RUN composer dump-autoload --optimize && composer run-script post-install-cmd

    CMD php artisan serve --host 0.0.0.0 --port 8000


    but I'm struggling a little bit to find out how to install various PHP extensions. I've gone through the official documentation, but its a little bit hard to follow as I don't think it has many details.



    Is there a gist or any other source available that gives details for how to install all available extensions for each php version, how to make php ini overwrites or if any additional config files required for an extension etc?










    share|improve this question

























      -1












      -1








      -1







      Hi I'd appreciate some feedback as I'm new in docker. I'm trying to create some php images from php-alpine in order to use for my personal local development (so it won't be really something I'm planing to use in production) for my Laravel or any other PHP applications.



      This is the Dockerfile I'm creating



      FROM php:7.2-fpm-alpine

      # TODO - Install various PHP extensions
      RUN pecl install redis
      && pecl install xdebug
      && docker-php-ext-enable redis xdebug

      # Install Composer
      RUN apk update && apk add curl &&
      curl -sS https://getcomposer.org/installer | php
      && chmod +x composer.phar && mv composer.phar /usr/local/bin/composer

      WORKDIR /var/www/html

      RUN chmod +x artisan

      RUN composer dump-autoload --optimize && composer run-script post-install-cmd

      CMD php artisan serve --host 0.0.0.0 --port 8000


      but I'm struggling a little bit to find out how to install various PHP extensions. I've gone through the official documentation, but its a little bit hard to follow as I don't think it has many details.



      Is there a gist or any other source available that gives details for how to install all available extensions for each php version, how to make php ini overwrites or if any additional config files required for an extension etc?










      share|improve this question













      Hi I'd appreciate some feedback as I'm new in docker. I'm trying to create some php images from php-alpine in order to use for my personal local development (so it won't be really something I'm planing to use in production) for my Laravel or any other PHP applications.



      This is the Dockerfile I'm creating



      FROM php:7.2-fpm-alpine

      # TODO - Install various PHP extensions
      RUN pecl install redis
      && pecl install xdebug
      && docker-php-ext-enable redis xdebug

      # Install Composer
      RUN apk update && apk add curl &&
      curl -sS https://getcomposer.org/installer | php
      && chmod +x composer.phar && mv composer.phar /usr/local/bin/composer

      WORKDIR /var/www/html

      RUN chmod +x artisan

      RUN composer dump-autoload --optimize && composer run-script post-install-cmd

      CMD php artisan serve --host 0.0.0.0 --port 8000


      but I'm struggling a little bit to find out how to install various PHP extensions. I've gone through the official documentation, but its a little bit hard to follow as I don't think it has many details.



      Is there a gist or any other source available that gives details for how to install all available extensions for each php version, how to make php ini overwrites or if any additional config files required for an extension etc?







      php docker dockerfile






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 20 '18 at 21:47









      Lykos

      1,36493567




      1,36493567
























          1 Answer
          1






          active

          oldest

          votes


















          0














          I'm using the same base image for a project, here are snippets for all of the php extensions I use. You may need various apks, but I've got them all in a giant list so I couldn't tell you which precisely are needed. I suspect g++ and make.



          Here's how I install xdebug since you specifically mentioned it



          RUN git clone https://github.com/xdebug/xdebug.git 
          && cd xdebug
          && git checkout tags/2.6.1
          && phpize
          && ./configure --enable-xdebug
          && make
          && make install


          Installing mcrypt, I mention it only because it's the only thing I found where I needed pecl:



          RUN sudo pecl install mcrypt-1.0.1 && docker-php-ext-enable mcrypt


          Regular php extensions:



          RUN docker-php-ext-install zip gd xml soap pdo pdo_mysql opcache


          Another thing, you should probably have the following (or similar) to sort out your PHP configs.



          RUN mv /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini

          COPY php.ini /usr/local/etc/php/conf.d/php.ini
          COPY php-fpm.conf /usr/local/etc/php-fpm.d/zz-docker.conf





          share|improve this answer





















            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53402076%2fguides-for-installing-php-extensions-from-php-alpine-dockerfile%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            I'm using the same base image for a project, here are snippets for all of the php extensions I use. You may need various apks, but I've got them all in a giant list so I couldn't tell you which precisely are needed. I suspect g++ and make.



            Here's how I install xdebug since you specifically mentioned it



            RUN git clone https://github.com/xdebug/xdebug.git 
            && cd xdebug
            && git checkout tags/2.6.1
            && phpize
            && ./configure --enable-xdebug
            && make
            && make install


            Installing mcrypt, I mention it only because it's the only thing I found where I needed pecl:



            RUN sudo pecl install mcrypt-1.0.1 && docker-php-ext-enable mcrypt


            Regular php extensions:



            RUN docker-php-ext-install zip gd xml soap pdo pdo_mysql opcache


            Another thing, you should probably have the following (or similar) to sort out your PHP configs.



            RUN mv /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini

            COPY php.ini /usr/local/etc/php/conf.d/php.ini
            COPY php-fpm.conf /usr/local/etc/php-fpm.d/zz-docker.conf





            share|improve this answer


























              0














              I'm using the same base image for a project, here are snippets for all of the php extensions I use. You may need various apks, but I've got them all in a giant list so I couldn't tell you which precisely are needed. I suspect g++ and make.



              Here's how I install xdebug since you specifically mentioned it



              RUN git clone https://github.com/xdebug/xdebug.git 
              && cd xdebug
              && git checkout tags/2.6.1
              && phpize
              && ./configure --enable-xdebug
              && make
              && make install


              Installing mcrypt, I mention it only because it's the only thing I found where I needed pecl:



              RUN sudo pecl install mcrypt-1.0.1 && docker-php-ext-enable mcrypt


              Regular php extensions:



              RUN docker-php-ext-install zip gd xml soap pdo pdo_mysql opcache


              Another thing, you should probably have the following (or similar) to sort out your PHP configs.



              RUN mv /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini

              COPY php.ini /usr/local/etc/php/conf.d/php.ini
              COPY php-fpm.conf /usr/local/etc/php-fpm.d/zz-docker.conf





              share|improve this answer
























                0












                0








                0






                I'm using the same base image for a project, here are snippets for all of the php extensions I use. You may need various apks, but I've got them all in a giant list so I couldn't tell you which precisely are needed. I suspect g++ and make.



                Here's how I install xdebug since you specifically mentioned it



                RUN git clone https://github.com/xdebug/xdebug.git 
                && cd xdebug
                && git checkout tags/2.6.1
                && phpize
                && ./configure --enable-xdebug
                && make
                && make install


                Installing mcrypt, I mention it only because it's the only thing I found where I needed pecl:



                RUN sudo pecl install mcrypt-1.0.1 && docker-php-ext-enable mcrypt


                Regular php extensions:



                RUN docker-php-ext-install zip gd xml soap pdo pdo_mysql opcache


                Another thing, you should probably have the following (or similar) to sort out your PHP configs.



                RUN mv /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini

                COPY php.ini /usr/local/etc/php/conf.d/php.ini
                COPY php-fpm.conf /usr/local/etc/php-fpm.d/zz-docker.conf





                share|improve this answer












                I'm using the same base image for a project, here are snippets for all of the php extensions I use. You may need various apks, but I've got them all in a giant list so I couldn't tell you which precisely are needed. I suspect g++ and make.



                Here's how I install xdebug since you specifically mentioned it



                RUN git clone https://github.com/xdebug/xdebug.git 
                && cd xdebug
                && git checkout tags/2.6.1
                && phpize
                && ./configure --enable-xdebug
                && make
                && make install


                Installing mcrypt, I mention it only because it's the only thing I found where I needed pecl:



                RUN sudo pecl install mcrypt-1.0.1 && docker-php-ext-enable mcrypt


                Regular php extensions:



                RUN docker-php-ext-install zip gd xml soap pdo pdo_mysql opcache


                Another thing, you should probably have the following (or similar) to sort out your PHP configs.



                RUN mv /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini

                COPY php.ini /usr/local/etc/php/conf.d/php.ini
                COPY php-fpm.conf /usr/local/etc/php-fpm.d/zz-docker.conf






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 20 '18 at 22:43









                George Appleton

                609427




                609427






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53402076%2fguides-for-installing-php-extensions-from-php-alpine-dockerfile%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Create new schema in PostgreSQL using DBeaver

                    Deepest pit of an array with Javascript: test on Codility

                    Costa Masnaga