ʹÓÃDocker´î½¨Symfony¿ª·¢ÇéÐΣº¿ìËÙÉÏÊÖ
ʹÓÃDocker´î½¨Symfony¿ª·¢ÇéÐΣº¿ìËÙÉÏÊÖ
¡¾ÕªÒª¡¿
SymfonyÊÇÒ»¿îÊ¢ÐеÄPHP¿ò¼Ü£¬ÉÁ¿ª·¢Ö°Ô±Äܹ»¿ìËÙ¹¹½¨ºÍ°²ÅÅWebÓ¦ÓóÌÐò¡£ÎªÁ˼ò»¯Symfony¿ª·¢ÇéÐεÄÉèÖúÍÖÎÀí£¬ÎÒÃÇ¿ÉÒÔʹÓÃDocker¾ÙÐÐÈÝÆ÷»¯°²ÅÅ¡£±¾ÎĽ«ÏÈÈÝÔõÑùʹÓÃDocker´î½¨Symfony¿ª·¢ÇéÐΣ¬²¢ÌṩÏêϸµÄ´úÂëʾÀý¡£
¡¾Ð¡Ðò¡¿
ÔڹŰåµÄSymfony¿ª·¢ÖУ¬ÎÒÃÇÐèÒªÊÖ¶¯ÉèÖò¢×°ÖÃËùÐèµÄÈí¼þ¡¢¹¤¾ßºÍÒÀÀµ¡£Õâ¸öÀú³Ìͨ³£·±ËöÇÒÐèÒªÆÆ·Ñ´ó×Úʱ¼ä¡£¶øʹÓÃDocker¿ÉÒÔ½«SymfonyÓ¦ÓóÌÐò´ò°üÔÚÒ»¸ö×ÔÁ¦µÄÈÝÆ÷ÖУ¬°üÀ¨ËùÐèµÄÇéÐκÍ×ÊÔ´£¬Ê¹µÃ°²ÅźͿª·¢±äµÃÔ½·¢¼òÆӺ͸ßЧ¡£
¡¾°ì·¨Ò»£º×°ÖÃDocker¡¿
Ê×ÏÈ£¬ÎÒÃÇÐèҪװÖÃDockerÒýÇ档ƾ֤ÄãµÄ²Ù×÷ϵͳ£¬¿ÉÒÔͨ¹ýÏìÓ¦µÄÇþµÀÏÂÔغÏÊʵÄ×°Öðü£¬²¢Æ¾Ö¤ÌáÐѾÙÐÐ×°Öá£
¡¾°ì·¨¶þ£º½¨ÉèSymfonyÓ¦ÓóÌÐò¡¿
½ÓÏÂÀ´£¬ÎÒÃÇÐèÒª½¨ÉèÒ»¸öSymfonyÓ¦ÓóÌÐò¡£¼ÙÉèÎÒÃǵÄÓ¦ÓóÌÐòÃûΪ”myapp”£¬¿ÉÒÔʹÓÃÒÔÏÂÏÂÁîÔÚÏÂÁîÐÐÖн¨É裺
$ symfony new myapp $ cd myapp
µÇ¼ºó¸´ÖÆ
ÒÔÉÏÏÂÁ×Ô¶¯ÏÂÔز¢×°ÖÃSymfonyµÄ×îа汾£¬²¢½¨ÉèÒ»¸öÃûΪ”myapp”µÄĿ¼¡£½øÈë¸ÃĿ¼¡£
¡¾°ì·¨Èý£º½¨ÉèDockerfile¡¿
ÔÚSymfonyÓ¦ÓóÌÐòµÄ¸ùĿ¼ÖУ¬½¨ÉèÒ»¸öÃûΪ”Dockerfile”µÄÎļþ¡£Õâ¸öÎļþÓÃÓÚ½ç˵DockerÈÝÆ÷µÄÉèÖú͹¹½¨°ì·¨¡£½«ÒÔÏÂÄÚÈݸ´ÖƵ½”Dockerfile”ÖУº
FROM php:7.4-apache WORKDIR /var/www/html # ×°ÖÃSymfonyËùÐèµÄÀ©Õ¹ºÍÒÀÀµ RUN apt-get update && apt-get install -y libicu-dev libpq-dev && docker-php-ext-install intl pdo_pgsql # ¼¤»îApacheµÄrewriteÄ£¿é RUN a2enmod rewrite # ¸´ÖÆÓ¦ÓóÌÐò´úÂëµ½ÈÝÆ÷ÖÐ COPY . . # ×°ÖÃComposerÒÀÀµ RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer RUN composer install --no-scripts # ÉèÖÃApacheµÄDocumentRootΪSymfonyµÄpublicĿ¼ RUN sed -ri -e 's!/var/www/html!/var/www/html/public!g' /etc/apache2/sites-available/*.conf RUN sed -ri -e 's!/var/www/!/var/www/html/public!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf # ÉèÖÃApacheÓû§ºÍ×éΪĿ½ñÓû§ RUN chown -R www-data:www-data /var/www/html CMD [ "apache2-foreground" ]
µÇ¼ºó¸´ÖÆ
ÒÔÉÏDockerfileÉèÖÃÁËÒ»¸ö»ùÓÚphp:7.4-apacheÓ³ÏñµÄSymfony¿ª·¢ÇéÐΡ£ÆäÖаüÀ¨Ò»Ð©»ù±¾µÄÉèÖúÍ×°Öã¬Èç×°ÖÃÀ©Õ¹¡¢¼¤»îrewriteÄ£¿é¡¢¸´ÖÆÓ¦ÓóÌÐò´úÂë¡¢×°ÖÃComposerÒÀÀµµÈ¡£
¡¾°ì·¨ËÄ£º¹¹½¨Docker¾µÏñ¡¿
ÔÚSymfonyÓ¦ÓóÌÐòµÄ¸ùĿ¼ÖУ¬·¿ªÏÂÁîÐÐÖնˣ¬Ö´ÐÐÒÔÏÂÏÂÁî¹¹½¨Docker¾µÏñ£º
$ docker build -t myapp .
µÇ¼ºó¸´ÖÆ
ÉÏÊöÏÂÁÔÚÄ¿½ñĿ¼ÖеÄDockerfileËùÔÚλÖù¹½¨Ò»¸öÃûΪ”myapp”µÄ¾µÏñ¡£¿ÉÒÔƾ֤ÏÖÕæÏàÐÎÐ޸ľµÏñÃû³Æ¡£
¡¾°ì·¨Î壺ÔËÐÐSymfonyÓ¦ÓóÌÐò¡¿
¹¹½¨¾µÏñÍê³Éºó£¬ÎÒÃÇ¿ÉÒÔͨ¹ýÒÔÏÂÏÂÁîÔËÐÐSymfonyÓ¦ÓóÌÐò£º
$ docker run -p 8000:80 myapp
µÇ¼ºó¸´ÖÆ
ÒÔÉÏÏÂÁÆô¶¯Ò»¸öÃûΪ”myapp”µÄÈÝÆ÷£¬²¢½«ÈÝÆ÷µÄ80¶Ë¿ÚÓ³Éäµ½Ö÷»úµÄ8000¶Ë¿Ú¡£´Ëʱ£¬ÎÒÃÇ¿ÉÒÔÔÚä¯ÀÀÆ÷Öлá¼û”http://localhost:8000″À´Éó²éSymfonyÓ¦ÓóÌÐò¡£
¡¾½áÂÛ¡¿
±¾ÎÄÏÈÈÝÁËÔõÑùʹÓÃDocker¿ìËٴSymfony¿ª·¢ÇéÐΡ£Í¨¹ýʹÓÃDocker£¬¿ÉÒÔ¼ò»¯SymfonyµÄ°²ÅźͿª·¢Àú³Ì£¬²¢Ìá¸ß¿ª·¢Ð§ÂÊ¡£Ï£Íû±¾ÎĵÄÄÚÈÝÄܹ»×ÊÖú¶ÁÕ߸üºÃµØʹÓÃDocker¾ÙÐÐSymfony¿ª·¢¡£
ÒÔÉϾÍÊÇʹÓÃDocker´î½¨Symfony¿ª·¢ÇéÐΣº¿ìËÙÉÏÊÖµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡