<br />
<b>Notice</b>:  Trying to get property 'ID' of non-object in <b>/var/www/html/feellikelearning/wp-content/themes/songwriter-premium/functions.php</b> on line <b>371</b><br />
{"version":"1.0","provider_name":"Feel Like Learning","provider_url":"https:\/\/feellikelearning.com","author_name":"feellikelearning","author_url":"https:\/\/feellikelearning.com\/index.php\/author\/feellikelearning\/","title":"docker-compose.yaml\u662f\u4ec0\u4e48\uff1f\u548cdockerFile\u6709\u4ec0\u4e48\u5173\u7cfb\uff1f | Feel Like Learning","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"NVAUcpJSKD\"><a href=\"https:\/\/feellikelearning.com\/index.php\/2023\/05\/07\/about-docker-compose-yaml-and-dockerfile\/\">docker-compose.yaml\u662f\u4ec0\u4e48\uff1f\u548cdockerFile\u6709\u4ec0\u4e48\u5173\u7cfb\uff1f<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/feellikelearning.com\/index.php\/2023\/05\/07\/about-docker-compose-yaml-and-dockerfile\/embed\/#?secret=NVAUcpJSKD\" width=\"600\" height=\"338\" title=\"&#8220;docker-compose.yaml\u662f\u4ec0\u4e48\uff1f\u548cdockerFile\u6709\u4ec0\u4e48\u5173\u7cfb\uff1f&#8221; &#8212; Feel Like Learning\" data-secret=\"NVAUcpJSKD\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script type=\"text\/javascript\">\n\/*! This file is auto-generated *\/\n!function(c,d){\"use strict\";var e=!1,o=!1;if(d.querySelector)if(c.addEventListener)e=!0;if(c.wp=c.wp||{},c.wp.receiveEmbedMessage);else if(c.wp.receiveEmbedMessage=function(e){var t=e.data;if(!t);else if(!(t.secret||t.message||t.value));else if(\/[^a-zA-Z0-9]\/.test(t.secret));else{for(var r,s,a,i=d.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),n=d.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),o=new RegExp(\"^https?:$\",\"i\"),l=0;l<n.length;l++)n[l].style.display=\"none\";for(l=0;l<i.length;l++)if(r=i[l],e.source!==r.contentWindow);else{if(r.removeAttribute(\"style\"),\"height\"===t.message){if(1e3<(s=parseInt(t.value,10)))s=1e3;else if(~~s<200)s=200;r.height=s}if(\"link\"===t.message)if(s=d.createElement(\"a\"),a=d.createElement(\"a\"),s.href=r.getAttribute(\"src\"),a.href=t.value,!o.test(a.protocol));else if(a.host===s.host)if(d.activeElement===r)c.top.location.href=t.value}}},e)c.addEventListener(\"message\",c.wp.receiveEmbedMessage,!1),d.addEventListener(\"DOMContentLoaded\",t,!1),c.addEventListener(\"load\",t,!1);function t(){if(o);else{o=!0;for(var e,t,r,s=-1!==navigator.appVersion.indexOf(\"MSIE 10\"),a=!!navigator.userAgent.match(\/Trident.*rv:11\\.\/),i=d.querySelectorAll(\"iframe.wp-embedded-content\"),n=0;n<i.length;n++){if(!(r=(t=i[n]).getAttribute(\"data-secret\")))r=Math.random().toString(36).substr(2,10),t.src+=\"#?secret=\"+r,t.setAttribute(\"data-secret\",r);if(s||a)(e=t.cloneNode(!0)).removeAttribute(\"security\"),t.parentNode.replaceChild(e,t);t.contentWindow.postMessage({message:\"ready\",secret:r},\"*\")}}}}(window,document);\n<\/script>\n","description":"docker-compose.yaml\u662f\u7528\u4e8e\u5b9a\u4e49\u548c\u8fd0\u884c\u591a\u4e2aDocker\u5bb9\u5668\u7684YAML\u6587\u4ef6\uff0c\u5b83\u63d0\u4f9b\u4e86\u4e00\u79cd\u58f0\u660e\u5f0f\u7684\u65b9\u5f0f\u6765\u5b9a\u4e49\u5e94\u7528\u7a0b\u5e8f\u7684\u5404\u4e2a\u7ec4\u4ef6\u4e4b\u95f4\u7684\u5173\u7cfb\uff0c\u5e76\u5c06\u5b83\u4eec\u4f5c\u4e3a\u4e00\u4e2a\u6574\u4f53\u6765\u7ba1\u7406\u3002\u901a\u8fc7docker-compose.yaml\uff0c\u53ef\u4ee5\u8f7b\u677e\u5730\u5b9a\u4e49\u548c\u7ba1\u7406\u591a\u4e2aDocker\u5bb9\u5668\u4e4b\u95f4\u7684\u4f9d\u8d56\u5173\u7cfb\uff0c\u4ee5\u53ca\u5b83\u4eec\u7684\u8fd0\u884c\u914d\u7f6e\u3002 \u5728docker-compose.yaml\u4e2d\uff0c\u53ef\u4ee5\u6307\u5b9a\u591a\u4e2a\u670d\u52a1\uff0c\u5e76\u5b9a\u4e49\u6bcf\u4e2a\u670d\u52a1\u6240\u9700\u7684Docker\u955c\u50cf\u3001\u7aef\u53e3\u6620\u5c04\u3001\u73af\u5883\u53d8\u91cf\u7b49\u53c2\u6570\uff0c\u4ee5\u53ca\u5b83\u4eec\u4e4b\u95f4\u7684\u5173\u7cfb\u3002\u5728\u521b\u5efa\u548c\u8fd0\u884c\u591a\u4e2aDocker\u5bb9\u5668\u65f6\uff0c\u53ef\u4ee5\u4f7f\u7528docker-compose\u547d\u4ee4\u6765\u81ea\u52a8\u5316\u6267\u884c\u591a\u4e2aDocker\u5bb9\u5668\u7684\u542f\u52a8\u3001\u914d\u7f6e\u548c\u8fde\u63a5\u7b49\u64cd\u4f5c\u3002 Dockerfile\u662f\u7528\u4e8e\u5b9a\u4e49Docker\u955c\u50cf\u6784\u5efa\u8fc7\u7a0b\u7684\u6587\u4ef6\u3002\u5b83\u5305\u542b\u4e86\u4e00\u7cfb\u5217\u7684\u6307\u4ee4\uff0c\u7528\u4e8e\u6307\u5b9a\u6784\u5efa\u8fc7\u7a0b\u4e2d\u9700\u8981\u6267\u884c\u7684\u64cd\u4f5c\uff0c\u4f8b\u5982\u5b89\u88c5\u8f6f\u4ef6\u3001\u914d\u7f6e\u73af\u5883\u53d8\u91cf\u3001\u590d\u5236\u6587\u4ef6\u7b49\u3002\u901a\u8fc7Dockerfile\uff0c\u53ef\u4ee5\u5b9a\u4e49\u4e00\u4e2a\u81ea\u5b9a\u4e49\u7684Docker\u955c\u50cf\uff0c\u5e76\u5728\u521b\u5efaDocker\u5bb9\u5668\u65f6\u4f7f\u7528\u8fd9\u4e2a\u955c\u50cf\u3002 docker-compose.yaml\u548cDockerfile\u7684\u5173\u7cfb\u5728\u4e8e\uff0cdocker-compose.yaml\u53ef\u4ee5\u5f15\u7528\u4e00\u4e2a\u6216\u591a\u4e2aDocker\u955c\u50cf\uff0c\u5176\u4e2d\u53ef\u4ee5\u5305\u62ec\u4f7f\u7528Dockerfile\u6784\u5efa\u7684\u81ea\u5b9a\u4e49\u955c\u50cf\u3002\u901a\u8fc7docker-compose.yaml\u548cDockerfile\u7684\u7ec4\u5408\uff0c\u53ef\u4ee5\u5b9e\u73b0\u5b9a\u4e49\u548c\u7ba1\u7406\u590d\u6742\u7684\u591a\u5bb9\u5668\u5e94\u7528\u7a0b\u5e8f\u3002 \u80fd\u7528python\u5c0f\u7a0b\u5e8f\u7ed9\u4e2a\u4f8b\u5b50\u793a\u8303\u4e00\u4e0b\u600e\u6837\u7528dockerfile\u548cdocker-compose.yaml\u5417\uff1f \u5f53\u7136\u53ef\u4ee5\uff0c\u4ee5\u4e0b\u662f\u4e00\u4e2a\u793a\u4f8b\u7a0b\u5e8f\uff1a \u9996\u5148\u662f Dockerfile \u6587\u4ef6\uff0c\u5b83\u7528\u4e8e\u6784\u5efa\u4e00\u4e2a\u57fa\u4e8e Python 3.8 \u7684 Docker \u955c\u50cf\uff0c\u5176\u4e2d\u5305\u542b\u4e00\u4e2a\u7b80\u5355\u7684 Python \u5e94\u7528\u7a0b\u5e8f\uff1a \u7136\u540e\u662f docker-compose.yaml \u6587\u4ef6\uff0c\u5b83\u5b9a\u4e49\u4e86\u4e00\u4e2a\u670d\u52a1\uff0c\u4f7f\u7528\u4e0a\u9762\u6784\u5efa\u7684\u81ea\u5b9a\u4e49\u955c\u50cf\u8fd0\u884c Python \u5e94\u7528\u7a0b\u5e8f\uff1a \u6700\u540e\u662f\u4e00\u4e2a\u7b80\u5355\u7684 Python \u5e94\u7528\u7a0b\u5e8f\uff0c\u5b83\u4f7f\u7528 Flask \u6846\u67b6\u521b\u5efa\u4e86\u4e00\u4e2a\u7b80\u5355\u7684 Web \u670d\u52a1\uff1a \u5728\u5f53\u524d\u76ee\u5f55\u4e0b\uff0c\u6709\u4e00\u4e2a\u540d\u4e3a requirements.txt \u7684\u6587\u4ef6\uff0c\u5b83\u5217\u51fa\u4e86 Flask \u6846\u67b6\u7684\u4f9d\u8d56\u5305\uff1a \u73b0\u5728\u53ef\u4ee5\u5728\u547d\u4ee4\u884c\u4e2d\u8fd0\u884c docker-compose up \u547d\u4ee4\u542f\u52a8\u670d\u52a1\u3002Docker Compose \u5c06\u4f1a\u4f7f\u7528\u4e0a\u8ff0\u7684 Dockerfile...Read more"}