{"id":738,"date":"2025-06-11T22:33:14","date_gmt":"2025-06-11T14:33:14","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/738.html"},"modified":"2025-06-11T22:33:14","modified_gmt":"2025-06-11T14:33:14","slug":"%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8-docker-compose-%e8%ae%be%e7%bd%ae-laravel","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/738.html","title":{"rendered":"\u5982\u4f55\u4f7f\u7528 Docker Compose \u8bbe\u7f6e Laravel"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#20351;&#29992; Docker Compose &#37197;&#32622; Laravel &#26159;&#19968;&#20010;&#24555;&#36895;&#19988;&#39640;&#25928;&#30340;&#24320;&#21457;&#27969;&#31243;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#35814;&#32454;&#30340;&#27493;&#39588;&#25351;&#21335;&#65292;&#24110;&#21161;&#20320;&#22312;&#26412;&#22320;&#35774;&#32622;&#21644;&#36816;&#34892; Laravel &#24212;&#29992;&#12290;<\/p>\n<h3>1. &#23433;&#35013; Docker &#21644; Docker Compose<\/h3>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#24050;&#32463;&#23433;&#35013;&#20102; Docker &#21644; Docker Compose&#12290;&#20320;&#21487;&#20197;&#20174; <a href=\"https:\/\/www.zhaozhao123.cn\/skin\/go?url=aHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZGVza3RvcA==\" rel=\"noopener noreferrer nofollow\">Docker &#23448;&#26041;&#32593;&#31449;<\/a> &#19979;&#36733;&#24182;&#23433;&#35013;&#26368;&#26032;&#29256;&#26412;&#30340; Docker Desktop&#12290;<\/p>\n<h3>2. &#21019;&#24314;&#39033;&#30446;&#30446;&#24405;<\/h3>\n<p>&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#25991;&#20214;&#22841;&#26469;&#23384;&#25918;&#20320;&#30340; Laravel &#39033;&#30446;&#65306;<\/p>\n<pre><code class=\"language-bash\">mkdir laravel-project\ncd laravel-project<\/code><\/pre>\n<h3>3. &#21021;&#22987;&#21270; Git &#20179;&#24211;&#65288;&#21487;&#36873;&#65289;<\/h3>\n<p>&#22914;&#26524;&#20320;&#24076;&#26395;&#23558;&#39033;&#30446;&#25176;&#31649;&#21040; GitHub &#25110;&#20854;&#20182;&#29256;&#26412;&#25511;&#21046;&#31995;&#32479;&#65292;&#21487;&#20197;&#21021;&#22987;&#21270;&#19968;&#20010; Git &#20179;&#24211;&#65306;<\/p>\n<pre><code class=\"language-bash\">git init<\/code><\/pre>\n<h3>4. &#28155;&#21152; Dockerfile &#21644; docker-compose.yml &#25991;&#20214;<\/h3>\n<p>&#22312;&#39033;&#30446;&#26681;&#30446;&#24405;&#19979;&#21019;&#24314; <code>Dockerfile<\/code> &#21644; <code>docker-compose.yml<\/code> &#25991;&#20214;&#12290;<\/p>\n<h4>Dockerfile<\/h4>\n<pre><code class=\"language-Dockerfile\"># &#20351;&#29992;&#23448;&#26041;&#30340; PHP &#29615;&#22659;&#38236;&#20687;&#20316;&#20026;&#22522;&#30784;&#38236;&#20687;\nFROM php:8.0-fpm-alpine\n\n# &#35774;&#32622;&#24037;&#20316;&#30446;&#24405;\nWORKDIR \/var\/www\/html\n\n# &#22797;&#21046;&#39033;&#30446;&#25991;&#20214;&#21040;&#23481;&#22120;\nCOPY . .\n\n# &#23433;&#35013;&#20381;&#36182;\nRUN composer install --optimize-autoloader\n\n# &#26292;&#38706;&#31471;&#21475;\nEXPOSE 9000\n\n# &#21551;&#21160;&#21629;&#20196;\nCMD [\"php-fpm\"]<\/code><\/pre>\n<h4>docker-compose.yml<\/h4>\n<pre><code class=\"language-yaml\">version: '3'\nservices:\n  web:\n    build: .\n    ports:\n      - \"9000:9000\"\n    volumes:\n      - .:\/var\/www\/html\n    networks:\n      - app-network\n\nnetworks:\n  app-network:<\/code><\/pre>\n<h3>5. &#26500;&#24314; Docker &#38236;&#20687;<\/h3>\n<p>&#22312;&#39033;&#30446;&#26681;&#30446;&#24405;&#19979;&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#26469;&#26500;&#24314; Docker &#38236;&#20687;&#65306;<\/p>\n<pre><code class=\"language-bash\">docker-compose build<\/code><\/pre>\n<h3>6. &#36816;&#34892; Docker &#23481;&#22120;<\/h3>\n<p>&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#26469;&#21551;&#21160; Docker &#23481;&#22120;&#65306;<\/p>\n<pre><code class=\"language-bash\">docker-compose up -d<\/code><\/pre>\n<h3>7. &#35775;&#38382;&#24212;&#29992;<\/h3>\n<p>&#25171;&#24320;&#27983;&#35272;&#22120;&#65292;&#35775;&#38382; <code>http:\/\/localhost:9000<\/code>&#65292;&#20320;&#24212;&#35813;&#33021;&#22815;&#30475;&#21040; Laravel &#30340;&#40664;&#35748;&#27426;&#36814;&#39029;&#38754;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20197;&#19979;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340; Laravel &#25511;&#21046;&#22120;&#31034;&#20363;&#65292;&#29992;&#20110;&#23637;&#31034;&#22914;&#20309;&#22312; Docker &#20013;&#36816;&#34892; Laravel&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\n\nclass HomeController extends Controller\n{\n    public function index()\n    {\n        return view('welcome');\n    }\n}<\/code><\/pre>\n<p>&#23558;&#36825;&#20010;&#25511;&#21046;&#22120;&#25918;&#22312; <code>app\/Http\/Controllers\/HomeController.php<\/code> &#25991;&#20214;&#20013;&#65292;&#24182;&#22312; <code>routes\/web.php<\/code> &#25991;&#20214;&#20013;&#28155;&#21152;&#20197;&#19979;&#36335;&#30001;&#65306;<\/p>\n<pre><code class=\"language-php\">Route::get('\/', [HomeController::class, 'index']);<\/code><\/pre>\n<p>&#36825;&#26679;&#65292;&#24403;&#20320;&#36816;&#34892; <code>docker-compose up -d<\/code> &#21518;&#65292;&#20320;&#23601;&#21487;&#20197;&#36890;&#36807; <code>http:\/\/localhost:9000<\/code> &#35775;&#38382;&#21040;&#20320;&#30340; Laravel &#24212;&#29992;&#20102;&#12290;<\/p>\n<h3>&#24635;&#32467;<\/h3>\n<p>&#20351;&#29992; Docker Compose &#21487;&#20197;&#31616;&#21270; Laravel &#24320;&#21457;&#36807;&#31243;&#65292;&#25552;&#39640;&#24320;&#21457;&#25928;&#29575;&#12290;&#36890;&#36807;&#19978;&#36848;&#27493;&#39588;&#65292;&#20320;&#21487;&#20197;&#22312;&#26412;&#22320;&#36731;&#26494;&#22320;&#37197;&#32622;&#21644;&#36816;&#34892; Laravel &#39033;&#30446;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>&#32467;&#21512;Laravel&#65292;&#19968;&#20010;&#24378;&#22823;&#30340;PHP&#26694;&#26550;&#65292;&#19982;Docker&#65292;&#19968;&#31181;&#21069;&#27839;&#30340;&#23481;&#22120;&#21270;&#25216;&#26415;&#65292;&#26159;&#19968;&#31181;&#29616;&#20195;&#36719;&#20214;&#24320;&#21457;&#30340;&#26041;&#27861;&#12290;&#26412;&#25945;&#31243;&#36890;&#36807;&#36880;&#27493;&#27493;&#39588;&#21521;&#24744;&#20171;&#32461;&#22914;&#20309;&#20351;&#29992;Docker Compose&#35774;&#32622;Laravel&#12290;&#26080;&#35770;&#26159;&#32463;&#39564;&#20016;&#23500;&#30340;&#24320;&#21457;&#32773;&#24076;&#26395;&#23558;&#24744;&#30340;Laravel&#24212;&#29992;&#31243;&#24207;docker&#21270;&#65292;&#36824;&#26159;&#21021;&#23398;&#32773;&#23545;&#23481;&#22120;&#21270;&#24863;&#20852;&#36259;&#65292;&#26412;&#25351;&#21335;&#37117;&#23558;&#24341;&#39046;&#24744;&#36208;&#19978;&#27491;&#30830;&#30340;&#36947;&#36335;&#12290;<\/p><h3>&#20808;&#20915;&#26465;&#20214;<\/h3><p>&#23545;Laravel&#30340;&#35201;&#27714;&#30693;&#35782;&#12290;<\/p><p>&#22522;&#26412;&#30340;Docker&#27010;&#24565;&#29702;&#35299;&#12290;<\/p><p>&#22312;&#24744;&#30340;&#26426;&#22120;&#19978;&#23433;&#35013;&#20102;Docker&#21644;Docker Compose&#12290;<\/p><h2>&#24320;&#22987;&#20351;&#29992;<\/h2><p>&#39318;&#20808;&#65292;&#35831;&#30830;&#20445;&#22312;&#24744;&#30340;&#26426;&#22120;&#19978;&#27491;&#30830;&#23433;&#35013;&#20102;Docker&#21644;Docker Compose&#12290;&#24744;&#21487;&#20197;&#36890;&#36807;&#36816;&#34892;&#26469;&#39564;&#35777;&#36825;&#19968;&#28857;&#12290;<code>docker --version<\/code>and &#26159;&ldquo;&#24182;&#19988;&rdquo;&#30340;&#24847;&#24605;&#12290;<code>docker-compose --version<\/code>&#22312;&#32456;&#31471;&#20013;&#30340;&#21629;&#20196;&#12290;<\/p><pre><code>$ docker --version\nDocker version xx.xx.x, build xxxxxxxx\n$ docker-compose --version\nDocker Compose version x.x.x, build xxxxxxx\n<\/code><\/pre><p>&#22914;&#26524;Docker&#27809;&#26377;&#23433;&#35013;&#65292;&#35831;&#25353;&#29031;&#24744;&#25152;&#20351;&#29992;&#30340;&#25805;&#20316;&#31995;&#32479;&#23545;&#24212;&#30340;&#23448;&#26041;Docker&#23433;&#35013;&#25351;&#21335;&#35775;&#38382;docker.com\/get-started&#36827;&#34892;&#25805;&#20316;&#12290;<\/p><h2>&#35774;&#32622;Docker Compose&#19982;Laravel&#30340;&#32452;&#21512;<\/h2><p>&#25105;&#20204;&#23558;&#39318;&#20808;&#20026;&#25105;&#20204;&#30340;Laravel&#39033;&#30446;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#30446;&#24405;&#65306;<\/p><pre><code>mkdir laravel-docker &amp;&amp; cd laravel-docker<\/code><\/pre><h3>&#21019;&#24314;Dockerfile&#12290;<\/h3><p>&#23545;&#19981;&#36215;&#65292;&#25105;&#19981;&#22826;&#26126;&#30333;&#20320;&#30340;&#24847;&#24605;&#65292;&#35831;&#37325;&#26032;&#25551;&#36848;&#19968;&#19979;&#12290;<code>laravel-docker<\/code>&#30446;&#24405;&#65292;&#21019;&#24314;&#19968;&#20010;<code>Dockerfile<\/code>&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><pre><code>FROM php:8.0-fpm\nRUN apt-get update &amp;&amp; apt-get install -y n    libonig-dev n    libxml2-dev n    zip n    unzip n    git n    curl n    libpng-dev n    libjpeg62-turbo-dev n    libfreetype6-dev n    &amp;&amp; docker-php-ext-configure gd --with-freetype --with-jpeg n    &amp;&amp; docker-php-ext-install -j$(nproc) gd mbstring exif pcntl bcmath opcache n    &amp;&amp; pecl install redis &amp;&amp; docker-php-ext-enable redis<\/code><\/pre><p>&#36825;&#23558;&#35774;&#32622;&#19968;&#20010;&#21253;&#21547;&#36866;&#29992;&#20110;&#20856;&#22411;Laravel&#24212;&#29992;&#25152;&#38656;&#25152;&#26377;&#24517;&#35201;&#30340;&#25193;&#23637;&#30340;PHP&#29615;&#22659;&#12290;<\/p><h3>&#22312; docker-compose.yml &#25991;&#20214;&#20013;&#23450;&#20041;&#26381;&#21153;&#12290;<\/h3><p>&#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#26356;&#22810;&#20449;&#24687;&#25110;&#20855;&#20307;&#35201;&#27714;&#65292;&#25105;&#20250;&#23613;&#21147;&#24110;&#21161;&#24744;&#23436;&#25104;&#20219;&#21153;&#12290;<code>docker-compose.yml<\/code>&#22312;&#39033;&#30446;&#30340;&#26681;&#30446;&#24405;&#19979;&#65292;&#23558;&#25991;&#20214;&#20197;&#20197;&#19979;&#26381;&#21153;&#36827;&#34892;&#20851;&#32852;&#65306;<\/p><pre><code>version: '3.8'\nservices:\n  app:\n    build:\n      context: .\n      dockerfile: Dockerfile\n    image: laravel-docker-app\n    container_name: laravel-docker-app\n    restart: unless-stopped\n    tty: true\n    environment:\n      SERVICE_NAME: app\n      SERVICE_TAGS: dev\n    working_dir: \/var\/www\n    volumes:\n      - .\/:\/var\/www\n    networks:\n      - laravel\n\n  webserver:\n    image: nginx:alpine\n    container_name: laravel-docker-webserver\n    restart: unless-stopped\n    tty: true\n    ports:\n      - \"8080:80\"\n    volumes:\n      - .\/:\/var\/www\n      - .\/docker\/nginx:\/etc\/nginx\/conf.d\/\n    networks:\n      - laravel\n\n  db:\n    image: mysql:5.7\n    container_name: laravel-docker-db\n    restart: unless-stopped\n    tty: true\n    ports:\n      - \"3306:3306\"\n    environment:\n      MYSQL_DATABASE: laravel\n      MYSQL_USER: laraveluser\n      MYSQL_PASSWORD: laravelpassword\n      MYSQL_ROOT_PASSWORD: rootpassword\n    volumes:\n      - dbdata:\/var\/lib\/mysql\n    networks:\n      - laravel\n\nnetworks:\n  laravel:\n    driver: bridge\n\nvolumes:\n  dbdata:\n    driver: local\n<\/code><\/pre><p>&#22312;&#36825;&#31181;&#37197;&#32622;&#19979;&#65292;&#25105;&#20204;&#23450;&#20041;&#20102;&#19977;&#20010;&#26381;&#21153;&#65306;<code>app<\/code>&#23545;&#20110;&#25105;&#20204;&#30340;Laravel&#24212;&#29992;&#31243;&#24207;&#65292;&#26377;&#19968;&#20123;&#24314;&#35758;&#12290;<code>webserver<\/code>&#20351;&#29992; Nginx&#65292;&#20197;&#21450;&#19968;&#20010;<code>db<\/code>&#26381;&#21153;&#27491;&#22312;&#36816;&#34892;MySQL&#12290;<\/p><p>&#23545;&#19981;&#36215;&#65292;&#24744;&#30340;&#21477;&#23376;&#20284;&#20046;&#27809;&#26377;&#23436;&#25104;&#12290;&#24744;&#21487;&#20197;&#25552;&#20379;&#23436;&#25972;&#30340;&#20869;&#23481;&#21527;&#65311;<code>volumes<\/code>&#25105;&#20204;&#20026;&#25105;&#20204;&#30340;&#25968;&#25454;&#24211;&#21019;&#24314;&#19968;&#20010;&#25345;&#20037;&#21367;&#65292;&#20197;&#30830;&#20445;&#23481;&#22120;&#20851;&#38381;&#26102;&#25968;&#25454;&#19981;&#20250;&#20002;&#22833;&#12290;<\/p><h3>&#36816;&#34892;&#23481;&#22120;<\/h3><p>&#35201;&#21551;&#21160;Docker&#29615;&#22659;&#65292;&#35831;&#25191;&#34892;&#20197;&#19979;&#21629;&#20196;&#65306;<\/p><pre><code>docker-compose up -d<\/code><\/pre><p>&#36825;&#23558;&#20250;&#26500;&#24314;&#24182;&#21551;&#21160;&#23450;&#20041;&#22312;&#20320;&#20013;&#30340;&#25152;&#26377;&#26381;&#21153;&#12290;<code>docker-compose.yml<\/code>&#25991;&#20214;&#12290;&#24744;&#21487;&#20197;&#26816;&#26597;&#23481;&#22120;&#30340;&#29366;&#24577;&#65306;<\/p><pre><code>docker-compose ps<\/code><\/pre><h2>&#32467;&#35770;&#12290;<\/h2><p>&#20351;&#29992;Docker Compose&#35774;&#32622;Laravel&#20250;&#20026;&#22242;&#38431;&#25104;&#21592;&#22312;&#24320;&#21457;&#29615;&#22659;&#20013;&#30340;&#19968;&#33268;&#24615;&#25552;&#20379;&#20445;&#38556;&#65292;&#21516;&#26102;&#25552;&#21319;&#29983;&#20135;&#37096;&#32626;&#31574;&#30053;&#12290;&#26412;&#25351;&#21335;&#25552;&#20379;&#20102;&#20351;&#29992;Docker Compose&#23481;&#22120;&#21270;Laravel&#24212;&#29992;&#31243;&#24207;&#30340;&#24517;&#35201;&#27493;&#39588;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>Docker Compose &#26159;&#19968;&#20010;&#29992;&#20110;&#37197;&#32622;&#21644;&#31649;&#29702;&#23481;&#22120;&#30340;&#24037;&#20855;&#65292;&#23427;&#21487;&#20197;&#29992;&#26469;&#26500;&#24314;&#22522;&#20110; Docker &#30340;&#24212;&#29992;&#21644;&#26381;&#21153;&#38598;&#32676;&#12290;&#19979;&#38754;&#26159;&#22914;&#20309;&#20351;&#29992; Docker Compose &#37197;&#32622; Laravel &#24212;&#29992;&#30340;&#19968;&#20010;&#31616;&#21333;&#25351;&#21335;&#12290;<\/p>\n<h3>&#27493;&#39588; 1: &#21019;&#24314; Dockerfile<\/h3>\n<p>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#21019;&#24314;&#19968;&#20010; Dockerfile &#26469;&#23450;&#20041;&#20320;&#30340; Laravel &#24212;&#29992;&#30340;&#38236;&#20687;&#12290;&#20551;&#35774;&#20320;&#30340; Laravel &#24212;&#29992;&#20301;&#20110; <code>\/var\/www\/html<\/code> &#30446;&#24405;&#19979;&#65292;&#20320;&#21487;&#20197;&#21019;&#24314;&#19968;&#20010; <code>Dockerfile<\/code> &#25991;&#20214;&#65292;&#24182;&#23558;&#23427;&#25918;&#22312;&#19982;&#20320;&#30340; Laravel &#39033;&#30446;&#30456;&#21516;&#30340;&#30446;&#24405;&#20013;&#65306;<\/p>\n<pre><code class=\"language-bash\">FROM laravel\/laravel<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#20551;&#35774;&#20320;&#24050;&#32463;&#22312;&#26412;&#22320;&#29615;&#22659;&#20013;&#23433;&#35013;&#20102; Laravel&#12290;&#28982;&#21518;&#65292;&#20320;&#38656;&#35201;&#20174;&#26412;&#22320;&#29615;&#22659;&#25289;&#21462;&#19968;&#20010;&#39044;&#32534;&#35793;&#22909;&#30340; Laravel &#27169;&#26495;&#24182;&#23558;&#20854;&#22797;&#21046;&#21040;&#20320;&#30340; Dockerfile &#20013;&#12290;<\/p>\n<h3>&#27493;&#39588; 2: &#32534;&#35793; Dockerfile<\/h3>\n<p>&#29616;&#22312;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#21629;&#20196;&#26469;&#32534;&#35793;&#20320;&#30340; Dockerfile &#24182;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340; Docker &#38236;&#20687;&#65306;<\/p>\n<pre><code class=\"language-bash\">docker build -t my-laravel-app .<\/code><\/pre>\n<p>&#36825;&#23558;&#20250;&#29983;&#25104;&#19968;&#20010;&#21517;&#20026; <code>my-laravel-app<\/code> &#30340; Docker &#38236;&#20687;&#65292;&#35813;&#38236;&#20687;&#21253;&#21547;&#20102;&#20320;&#20043;&#21069;&#23450;&#20041;&#30340; Laravel &#24212;&#29992;&#38236;&#20687;&#12290;<\/p>\n<h3>&#27493;&#39588; 3: &#20351;&#29992; Docker Compose<\/h3>\n<p>&#25509;&#19979;&#26469;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992; Docker Compose &#26469;&#37096;&#32626;&#20320;&#30340;&#24212;&#29992;&#31243;&#24207;&#12290;&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#24050;&#32463;&#23433;&#35013;&#20102; Docker Compose&#65306;<\/p>\n<pre><code class=\"language-bash\">sudo apt-get update\nsudo apt-get install docker-compose<\/code><\/pre>\n<p>&#28982;&#21518;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;&#20197;&#19979;&#21629;&#20196;&#26469;&#21551;&#21160;&#19968;&#20010;&#26381;&#21153;&#65306;<\/p>\n<pre><code class=\"language-bash\">docker-compose up -d<\/code><\/pre>\n<p>&#36825;&#23558;&#20250;&#21551;&#21160;&#20004;&#20010;&#26381;&#21153;&#65306;&#19968;&#20010;&#26159;&#36816;&#34892; Laravel &#24212;&#29992;&#30340;&#23481;&#22120;&#65288;&#40664;&#35748;&#24773;&#20917;&#19979;&#26159;&#29983;&#20135;&#27169;&#24335;&#65289;&#65292;&#21478;&#19968;&#20010;&#26159;&#36816;&#34892;&#25968;&#25454;&#24211;&#26381;&#21153;&#30340;&#23481;&#22120;&#12290;<\/p>\n<h3>&#27493;&#39588; 4: &#39564;&#35777;&#24212;&#29992;&#26159;&#21542;&#27491;&#24120;&#24037;&#20316;<\/h3>\n<p>&#20026;&#20102;&#39564;&#35777;&#20320;&#30340;&#24212;&#29992;&#26159;&#21542;&#25353;&#39044;&#26399;&#36816;&#34892;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992; Docker Compose &#30340; <code>up-deploy<\/code> &#21629;&#20196;&#26469;&#27979;&#35797;&#25152;&#26377;&#26381;&#21153;&#26159;&#21542;&#37117;&#24050;&#23601;&#32490;&#65306;<\/p>\n<pre><code class=\"language-bash\">docker-compose up --build -d<\/code><\/pre>\n<p>&#22914;&#26524;&#19968;&#20999;&#39034;&#21033;&#65292;&#20320;&#24212;&#35813;&#33021;&#30475;&#21040;&#19968;&#20123;&#20851;&#20110;&#25104;&#21151;&#21551;&#21160;&#30340;&#28040;&#24687;&#65292;&#22914;&ldquo;Laravel container is running&rdquo; &#21644; &ldquo;Database service is running&rdquo;&#12290;<\/p>\n<h3>&#32467;&#35770;<\/h3>\n<p>&#36825;&#23601;&#26159;&#22914;&#20309;&#20351;&#29992; Docker Compose &#26500;&#24314;&#21644;&#37096;&#32626;&#19968;&#20010;&#22522;&#20110; Laravel &#30340; Web &#24212;&#29992;&#12290;&#22914;&#26524;&#20320;&#38656;&#35201;&#36827;&#19968;&#27493;&#30340;&#24110;&#21161;&#65292;&#35831;&#21578;&#35785;&#25105;&#26356;&#22810;&#20851;&#20110;&#20320;&#30340;&#20855;&#20307;&#38656;&#27714;&#65281;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#20351;&#29992; Docker Compose &#37197;&#32622; Laravel &#26159;&#19968;&#20010;&#24555;&#36895;&#19988;&#39640;&#25928;&#30340;&#038;#2..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-738","my1js","type-my1js","status-publish","hentry","my1js2nav-laravel"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/738","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=738"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=738"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=738"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=738"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}