{
    "componentChunkName": "component---src-templates-note-note-js",
    "path": "/notes/docker-compose",
    "result": {"data":{"mdx":{"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"**\"), mdx(\"p\", null, \"Docker Compose is a tool for defining and running multi-container Docker applications. With Compose, you can define an entire application stack, including services, networks, and volumes, in a single \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"docker-compose.yml\"), \" file. This allows you to specify how Docker containers should behave in production in a clear, maintainable way.\"), mdx(\"h2\", null, \"Key Features of Docker Compose\"), mdx(\"h3\", null, \"Simplified Configuration\"), mdx(\"p\", null, \"You can define multiple services, networks, and volumes in a \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"docker-compose.yml\"), \" file, making it easier to manage complex setups.\"), mdx(\"h3\", null, \"One-Command Management\"), mdx(\"p\", null, \"With a single command, \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"docker-compose up\"), \", you can start all services defined in the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"docker-compose.yml\"), \" file.\"), mdx(\"h3\", null, \"Dependency Management\"), mdx(\"p\", null, \"Docker Compose ensures that services are started in dependency order as defined in the configuration file.\"), mdx(\"h3\", null, \"Environment Isolation\"), mdx(\"p\", null, \"You can have multiple isolated environments on a single host by specifying different project names or by using separate \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"docker-compose.yml\"), \" files.\"), mdx(\"h3\", null, \"Reusability\"), mdx(\"p\", null, \"Docker Compose files can be shared and reused, allowing you to define templates for setups that can be used in different projects.\"), mdx(\"h3\", null, \"Development to Production\"), mdx(\"p\", null, \"Compose files can be extended to define \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/production-specific-configurations\",\n    \"title\": \"production-specific configurations\"\n  }, \"production-specific configurations\"), \", making it easier to transition from a development to a production environment.\"), mdx(\"h2\", null, \"Typical Use Cases\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Local Development\"), \": Simulating a production environment on a developer's machine.\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Continuous Integration\"), \": Running tests and builds in an isolated environment.\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"Automated Deployment\"), \": Using it in conjunction with tools like \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/notes/Ansible\",\n    \"title\": \"Ansible\"\n  }, \"Ansible\"), \" or \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/notes/Jenkins\",\n    \"title\": \"Jenkins\"\n  }, \"Jenkins\"), \" for automated deployment.\")), mdx(\"p\", null, \"In summary, Docker Compose simplifies the management of multi-container applications by allowing you to define everything in a single configuration file and manage it with simple commands.\"), mdx(\"p\", null, \"**\"), mdx(\"p\", null, \"\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/generated-by-chatgpt\",\n    \"title\": \"generated by chatgpt\"\n  }, \"generated by chatgpt\"), \"\"), mdx(\"h2\", null, \"#explore\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/notes/Snyk\",\n    \"title\": \"Snyk\"\n  }, \"Snyk\"), \" tests??\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"different project names in a single docker\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"environment specific docker compose with common and overrides\"), mdx(\"li\", {\n    parentName: \"ol\"\n  })));\n}\n;\nMDXContent.isMDXComponent = true;","inboundReferences":[{"id":"a3249d98-3400-56f1-bab8-b5e9cf15a932","slug":"docker-compose-for-drupalnext"}]}},"pageContext":{"slug":"docker-compose","node":{"childMdx":{"slug":"docker-compose"}}}},
    "staticQueryHashes": []}