{"id":297,"date":"2021-11-08T10:55:18","date_gmt":"2021-11-08T01:55:18","guid":{"rendered":"https:\/\/kitayama.jp\/?p=297"},"modified":"2021-11-08T10:55:20","modified_gmt":"2021-11-08T01:55:20","slug":"docker-%e3%81%a7-mac%e3%81%ablaravel-%e3%81%ae%e5%9f%ba%e6%9c%ac%e3%82%92%e8%bf%bd%e5%8a%a0%e3%81%99%e3%82%8b%e3%80%82","status":"publish","type":"post","link":"https:\/\/kitayama.jp\/?p=297","title":{"rendered":"DOCKER \u3067 MAC\u306bLaravel \u306e\u57fa\u672c\u3092\u8ffd\u52a0\u3059\u308b\u3002"},"content":{"rendered":"\n<p>DOCKER\u3067\u3001MAC\u306blaravel+APACHE+MySQL\u306e\u74b0\u5883\u3092\u69cb\u7bc9\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u6700\u521d\u306b\u66f8\u3044\u3066\u304a\u304f\u304c\u3001\u3053\u308c\u306f\u6b63\u3057\u3044\u65b9\u6cd5\u306b\u307e\u3060\u306a\u3063\u3066\u3044\u306a\u3044\u3001\u3068\u308a\u3042\u3048\u305a\u3001\u52d5\u304b\u3057\u305f\u3068\u3044\u3046\u74b0\u5883\u3002<\/p>\n\n\n\n<p>\u5f8c\u3005\u6b63\u3057\u3044\u65b9\u6cd5\u306b\u5909\u66f4\u3059\u308b\u3002<\/p>\n\n\n\n<p>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3059\u308b\u3002<\/p>\n\n\n\n<p>\u305d\u3053\u306b\u3001docker-compose.yml \u3092\u4f5c\u6210<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Compose file\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u6307\u5b9a\nversion: '3'\n# \u3069\u3093\u306a\u30b3\u30f3\u30c6\u30ca\u3092\u7acb\u3061\u4e0a\u3052\u308b\u304b\nservices:\n # laravel\u3092\u52d5\u304b\u3059\u30b3\u30f3\u30c6\u30ca\n app:\n   # \u3069\u306e\u30dd\u30fc\u30c8\u3092\u958b\u3044\u3066\u7e4b\u3050\u304b\u3002\u4e0b\u8a18\u306f\u30b3\u30f3\u30c6\u30ca\u306e80\u756a\u30dd\u30fc\u30c8\u3092\u958b\u3044\u3066\u3001\u30db\u30b9\u30c8\u306e8000\u756a\u306b\u3064\u306a\u3050\n   ports:\n   - \"80:80\"\n   #- ${APP_PORT:-443}:443\n   # \u5148\u307b\u3069\u4f5c\u3063\u305fDockerfile\u3092\u4f7f\u3063\u3066\u3001\u30b3\u30f3\u30c6\u30ca\u3092\u30d3\u30eb\u30c9\u3059\u308b\u3068\u3044\u3046\u6307\u5b9a\n   build: .\/docker\/app\n   # \u30b3\u30f3\u30c6\u30ca\u306e\u540d\u524d\u3092\u6307\u5b9a\n   container_name: mute_app\n   # \u30b3\u30f3\u30c6\u30ca\u3068\u30db\u30b9\u30c8\u5074\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u540c\u671f\u3059\u308b\u5834\u6240\u306e\u6307\u5b9a\u3002laravel\u306e\u30bd\u30fc\u30b9\u304c\u5165\u308b\u4e88\u5b9a\u306e\u5834\u6240\n   volumes:\n     - .\/src:\/var\/www\/html\/\n # MySQL\u3092\u52d5\u304b\u3059\u30b3\u30f3\u30c6\u30ca\n db2:\n   # Docker Hub\u304b\u3089MySQL5.7\u306e\u516c\u5f0f\u30a4\u30e1\u30fc\u30b8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u304f\u308b\u6307\u5b9a\n   image: mysql:5.7\n   container_name: mute_db\n   # \u30b3\u30f3\u30c6\u30ca\u5185\u306e\u74b0\u5883\u5909\u6570\u3092\u6307\u5b9a\u3002\u74b0\u5883\u5909\u6570\u3092\u6e21\u3059\u3068\u30d3\u30eb\u30c9\u6642\u306b\u8a2d\u5b9a\u3057\u3066\u304f\u308c\u308bDocker\u30a4\u30e1\u30fc\u30b8\u304c\u3042\u308b\u306e\u3067\u3001\u5229\u7528\u306e\u969b\u306fDocker Hub\u306e\u30b5\u30a4\u30c8\u3067\u78ba\u8a8d\u3059\u308b\u3068\u826f\u3044\n   environment:\n     MYSQL_ROOT_PASSWORD: root\n     MYSQL_DATABASE: mute\n     MYSQL_USER: kitayama\n     MYSQL_PASSWORD: kali7712345\n     TZ: 'Asia\/Tokyo'\n   # \u8d77\u52d5\u6642\u306e\u30b3\u30de\u30f3\u30c9\n   command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci\n   # \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u540c\u671f\u3002\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3068MySQL\u306e\u30c7\u30fc\u30bf\u304c\u4fdd\u5b58\u3055\u308c\u308b\u5834\u6240\u3092\u540c\u671f\u3057\u3066\u3044\u308b\u3002\u30b3\u30f3\u30c6\u30ca\u306f\u57fa\u672c\u7684\u306b\u8d77\u52d5\u6642\u306b\u5909\u66f4\u3055\u308c\u3066\u3082\u30b3\u30f3\u30c6\u30ca\u81ea\u4f53\u304c\u6b62\u307e\u308b\u3068\u30c7\u30fc\u30bf\u304c\u6d88\u3048\u3066\u3057\u307e\u3046\u305f\u3081\u3001\u4fdd\u5b58\u3057\u3066\u304a\u304d\u305f\u3044\u3082\u306e\u306f\u30db\u30b9\u30c8\u30de\u30b7\u30f3\u3068\u540c\u671f\u3057\u3066\u304a\u304f\u5fc5\u8981\u304c\u3042\u308b\u3002\n   volumes:\n     - .\/docker\/db\/data:\/var\/lib\/mysql\n     - .\/docker\/db\/my.cnf:\/etc\/mysql\/conf.d\/my.cnf\n   ports:\n     - 3306:3306\n\n phpmyadmin:\n    container_name: mute_phpmyadmin\n    image: phpmyadmin\/phpmyadmin\n    environment:\n      - PMA_ARBITRARY=1\n      - PMA_HOSTS=mute_db\n      - PMA_USER=kitayama\n      - PMA_PASSWORD=kali7712345\n    ports:\n      - 8080:80\n\n\n\n\napp\/Dockerfile \u3092\u4f5c\u6210\u3059\u308b<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># \u3069\u3093\u306adocker\u30a4\u30e1\u30fc\u30b8\u3092\u5229\u7528\u3057\u3066\u69cb\u7bc9\u3092\u3059\u308b\u304b\nFROM php:7.4-apache\n\n# \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092docker\u30b3\u30f3\u30c6\u30ca\u5185\u306ePHP\u3001Apache\u306b\u8aad\u307f\u8fbc\u307e\u305b\u308b\nADD php.ini \/usr\/local\/etc\/php\/\nADD 000-default.conf \/etc\/apache2\/sites-enabled\/\n\n# Composer\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nRUN cd \/usr\/bin &amp;&amp; curl -s http:\/\/getcomposer.org\/installer | php &amp;&amp; ln -s \/usr\/bin\/composer.phar \/usr\/bin\/composer\n\n# \u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nRUN apt-get update \\\n&amp;&amp; apt-get install -y \\\ngit \\\nzip \\\nunzip \\\nvim \\\nlibpng-dev \\\nlibpq-dev \\\n&amp;&amp; docker-php-ext-install pdo_mysql\n\n# Laravel\u3067\u5fc5\u8981\u306b\u306a\u308bmodRewrite\u3092\u6709\u52b9\u5316\u3059\u308b\nRUN mv \/etc\/apache2\/mods-available\/rewrite.load \/etc\/apache2\/mods-enabled\nRUN \/bin\/sh -c a2enmod rewrite\n\nCOPY server.crt \/etc\/apache2\/ssl\/keys\/server.crt\nCOPY server.key \/etc\/apache2\/ssl\/keys\/server.kty\n#RUN sed -i 's!\/var\/www\/html!\/var\/www\/html\/laravelapp\/public!g' \/etc\/apache2\/sites-available\/default-ssl.conf \\\n#    &amp;&amp; sed -i 's!\/etc\/ssl\/certs\/ssl-cert-snakeoil.pem!\/etc\/ssl\/certs\/server.crt!g' \/etc\/apache2\/sites-available\/default-ssl.conf \\\n#    &amp;&amp; sed -i 's!\/etc\/ssl\/private\/ssl-cert-snakeoil.key!\/etc\/ssl\/private\/server.key!g' \/etc\/apache2\/sites-available\/default-ssl.conf\n#RUN a2enmod ssl \\\n#x    &amp;&amp; a2ensite default-ssl.conf<\/code><\/pre>\n\n\n\n<p>000-default.conf \u3092\u4f5c\u6210\u3059\u308b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;VirtualHost *:80>\n       ServerAdmin webmaster@localhost\n       DocumentRoot \/var\/www\/html\/laravelapp\/public\n       ErrorLog ${APACHE_LOG_DIR}\/error.log\n       CustomLog ${APACHE_LOG_DIR}\/access.log combined\n       &lt;Directory \/var\/www\/html\/laravelapp\/public>\n           AllowOverride All\n       &lt;\/Directory>\n&lt;\/VirtualHost><\/code><\/pre>\n\n\n\n<p><br>php.ini \u3092\u4f5c\u6210\u3059\u308b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;Date]\ndate.timezone = \"Asia\/Tokyo\"\n&#91;mbstring]\nmbstring.internal_encoding = \"UTF-8\"\nmbstring.language = \"Japanese\"\n\n<\/code><\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>DOCKER\u3067\u3001MAC\u306blaravel+APACHE+MySQL\u306e\u74b0\u5883\u3092\u69cb\u7bc9\u3057\u305f\u3002 \u6700\u521d\u306b\u66f8\u3044\u3066\u304a\u304f\u304c\u3001\u3053\u308c\u306f\u6b63\u3057\u3044\u65b9\u6cd5\u306b\u307e\u3060\u306a\u3063\u3066\u3044\u306a\u3044\u3001\u3068\u308a\u3042\u3048\u305a\u3001\u52d5\u304b\u3057\u305f\u3068\u3044\u3046\u74b0\u5883\u3002 \u5f8c\u3005\u6b63\u3057\u3044\u65b9\u6cd5\u306b\u5909\u66f4\u3059\u308b\u3002 \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3059\u308b\u3002 \u305d\u3053\u306b\u3001docker-compose.yml \u3092\u4f5c\u6210 000-default.conf \u3092\u4f5c\u6210\u3059\u308b\u3002 php.ini \u3092\u4f5c\u6210\u3059\u308b\u3002<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/kitayama.jp\/index.php?rest_route=\/wp\/v2\/posts\/297"}],"collection":[{"href":"https:\/\/kitayama.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kitayama.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kitayama.jp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kitayama.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=297"}],"version-history":[{"count":5,"href":"https:\/\/kitayama.jp\/index.php?rest_route=\/wp\/v2\/posts\/297\/revisions"}],"predecessor-version":[{"id":302,"href":"https:\/\/kitayama.jp\/index.php?rest_route=\/wp\/v2\/posts\/297\/revisions\/302"}],"wp:attachment":[{"href":"https:\/\/kitayama.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=297"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kitayama.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=297"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kitayama.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}