{"id":3186,"date":"2026-01-06T21:09:20","date_gmt":"2026-01-06T12:09:20","guid":{"rendered":"https:\/\/technologyagency.net\/wordpress\/?p=3186"},"modified":"2026-01-06T21:09:22","modified_gmt":"2026-01-06T12:09:22","slug":"docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b","status":"publish","type":"post","link":"https:\/\/technologyagency.net\/wordpress\/2026\/01\/06\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\/","title":{"rendered":"Docker Compose\u3067\u3001Web\u30a2\u30d7\u30ea\u958b\u767a\u74b0\u5883\u3092\u4f5c\u308b"},"content":{"rendered":"\n<p>\u4eca\u56de\u306f\u3001\u5178\u578b\u7684\u306a\u300c\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\uff08React\u7b49\uff09 + \u30d0\u30c3\u30af\u30a8\u30f3\u30c9\uff08Spring\/Node\u7b49\uff09 + \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\uff08MariaDB\uff09\u300d\u306e\u69cb\u6210\u3092\u4f8b\u306b docker-compose.yml \u3092\u66f8\u3044\u305f\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u4eca\u56de\u306e\u69cb\u6210<\/h2>\n\n\n\n<p>3\u3064\u306e\u30b3\u30f3\u30c6\u30ca\uff08Service\uff09\u304c\u5c02\u7528\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5185\u3067\u9023\u643a\u3057\u3001\u30c7\u30fc\u30bf\u306f\u30dc\u30ea\u30e5\u30fc\u30e0\u306b\u3088\u3063\u3066\u6c38\u7d9a\u5316\u3055\u308c\u308b\u69cb\u6210\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u5b8c\u6210\u3057\u305f docker-compose.yml<\/h2>\n\n\n\n<p>\u4ee5\u4e0b\u304c\u4eca\u56de\u89e3\u8aac\u3059\u308b\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3002\u4f8b\u3068\u3057\u3066\u5c0f\u8aac\u691c\u7d22\u30b7\u30b9\u30c6\u30e0\uff08Novel Search System\uff09\u306e\u3088\u3046\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u60f3\u5b9a\u3057\u3066\u3044\u308b\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"\" style=\"font-size:.875rem;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>services:\n  backend:\n    build: .\/backend\n    container_name: novel-backend\n    ports:\n      - \"8080:8080\"\n    environment:\n      - DB_URL=jdbc:mariadb:\/\/novel-db:3306\/${DB_NAME}\n      # ... (\u7701\u7565)\n    depends_on:\n      novel-db:\n        condition: service_healthy # \u3053\u3053\u304c\u91cd\u8981\uff01\n    networks:\n      - novel-network\n\n  frontend:\n    build: .\/frontend\n    container_name: novel-frontend\n    ports:\n      - \"80:80\"\n    depends_on:\n      - backend\n    networks:\n      - novel-network\n\n  novel-db:\n    image: mariadb:12.1\n    container_name: novel-db\n    environment:\n      - MARIADB_DATABASE=${DB_NAME}\n      # ... (\u7701\u7565)\n    healthcheck:\n      test: &#91;\"CMD-SHELL\", \"mariadb-admin ping -h localhost -u root -p$$MARIADB_ROOT_PASSWORD || exit 1\"&#93;\n      interval: 10s\n      timeout: 5s\n      retries: 10\n    volumes:\n      - db_data:\/var\/lib\/mysql\n      - .\/backend\/sql:\/docker-entrypoint-initdb.d\n    networks:\n      - novel-network\n\nnetworks:\n  novel-network:\n    driver: bridge\n\nvolumes:\n  db_data:<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #8FBCBB\">services<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #8FBCBB\">backend<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">build<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">.\/backend<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">container_name<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">novel-backend<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">ports<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">8080:8080<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">environment<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">DB_URL=jdbc:mariadb:\/\/novel-db:3306\/${DB_NAME}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">      <\/span><span style=\"color: #616E88\"># ... (\u7701\u7565)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">depends_on<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">novel-db<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #8FBCBB\">condition<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">service_healthy<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #616E88\"># \u3053\u3053\u304c\u91cd\u8981\uff01<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">networks<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">novel-network<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #8FBCBB\">frontend<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">build<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">.\/frontend<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">container_name<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">novel-frontend<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">ports<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">80:80<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">depends_on<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">backend<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">networks<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">novel-network<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #8FBCBB\">novel-db<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">image<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">mariadb:12.1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">container_name<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">novel-db<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">environment<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">MARIADB_DATABASE=${DB_NAME}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">      <\/span><span style=\"color: #616E88\"># ... (\u7701\u7565)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">healthcheck<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">test<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">CMD-SHELL<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">mariadb-admin ping -h localhost -u root -p$$MARIADB_ROOT_PASSWORD || exit 1<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">interval<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">10s<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">timeout<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">5s<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">retries<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">volumes<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">db_data:\/var\/lib\/mysql<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">.\/backend\/sql:\/docker-entrypoint-initdb.d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">networks<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">novel-network<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">networks<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #8FBCBB\">novel-network<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">driver<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">bridge<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">volumes<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #8FBCBB\">db_data<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">1.\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u300c\u8d77\u52d5\u5f85\u3061\u300d\u3092\u5b8c\u74a7\u306b\u3059\u308b healthcheck<\/h2>\n\n\n\n<p>Docker Compose\u3067\u3088\u304f\u3042\u308b\u30c8\u30e9\u30d6\u30eb\u304c\u3001<strong>\u300cDB\u304c\u5b8c\u5168\u306b\u7acb\u3061\u4e0a\u304c\u308b\u524d\u306b\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u304c\u63a5\u7d9a\u306b\u884c\u304d\u3001\u30a8\u30e9\u30fc\u3067\u843d\u3061\u308b\u300d<\/strong>\u3068\u3044\u3046\u73fe\u8c61\u3002<\/p>\n\n\n\n<p>\u5358\u306a\u308b depends_on: &#8211; novel-db \u3060\u3051\u3067\u306f\u3001\u300c\u30b3\u30f3\u30c6\u30ca\u304c\u4f5c\u6210\u3055\u308c\u305f\u300d\u3053\u3068\u3057\u304b\u78ba\u8a8d\u3067\u304d\u305a\u3001\u300cDB\u63a5\u7d9a\u306e\u6e96\u5099\u304c\u3067\u304d\u305f\u300d\u3053\u3068\u307e\u3067\u306f\u4fdd\u8a3c\u3055\u308c\u306a\u3044\u3002<\/p>\n\n\n\n<p>\u305d\u3053\u3067Healthcheck\uff08\u30d8\u30eb\u30b9\u30c1\u30a7\u30c3\u30af\uff09 \u3092\u884c\u3046\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"\" style=\"font-size:.875rem;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>novel-db:\n    # ...\n    healthcheck:\n      test: &#91;\"CMD-SHELL\", \"mariadb-admin ping ...\"&#93;\n      interval: 10s\n      retries: 10<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #8FBCBB\">novel-db<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">    <\/span><span style=\"color: #616E88\"># ...<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">healthcheck<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">test<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">CMD-SHELL<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">mariadb-admin ping ...<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">interval<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">10s<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">retries<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>\u3053\u3053\u3067\u306f mariadb-admin ping \u30b3\u30de\u30f3\u30c9\u3092\u5b9a\u671f\u7684\u306b\u5b9f\u884c\u3057\u3001DB\u304c\u5fdc\u7b54\u3059\u308b\u304b\u3092\u76e3\u8996\u3057\u3066\u3044\u308b\u3002<\/p>\n\n\n\n<p>backend\u5074\u3067\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u8a18\u8ff0\u3059\u308b\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"\" style=\"font-size:.875rem;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>backend:\n    depends_on:\n      novel-db:\n        condition: service_healthy<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #8FBCBB\">backend<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">depends_on<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">novel-db<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #8FBCBB\">condition<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">service_healthy<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>\u3053\u308c\u306b\u3088\u308a\u3001<strong>\u300cDB\u306e\u30d8\u30eb\u30b9\u30c1\u30a7\u30c3\u30af\u304cOK\u306b\u306a\u308b\u307e\u3067\u3001\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u3092\u8d77\u52d5\u3055\u305b\u306a\u3044\u300d<\/strong>\u3068\u3044\u3046\u5236\u5fa1\u304c\u53ef\u80fd\u306b\u306a\u308b\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2.\u30c7\u30fc\u30bf\u306e\u6c38\u7d9a\u5316\u3068\u521d\u671f\u30c7\u30fc\u30bf\u306e\u6295\u5165<\/h2>\n\n\n\n<p>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u30b3\u30f3\u30c6\u30ca\u5316\u3059\u308b\u969b\u3001\u30b3\u30f3\u30c6\u30ca\u3092\u524a\u9664\u3059\u308b\u3068\u30c7\u30fc\u30bf\u3082\u6d88\u3048\u3066\u3057\u307e\u3046\u3002\u3053\u308c\u3092\u9632\u3050\u306e\u304c volumes \u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"\" style=\"font-size:.875rem;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>volumes:\n      - db_data:\/var\/lib\/mysql\n      - .\/backend\/sql:\/docker-entrypoint-initdb.d<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #8FBCBB\">volumes<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">db_data:\/var\/lib\/mysql<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">.\/backend\/sql:\/docker-entrypoint-initdb.d<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>db_data:\/var\/lib\/mysql: \u30db\u30b9\u30c8\u5074\uff08Docker\u7ba1\u7406\u9818\u57df\uff09\u306b\u30c7\u30fc\u30bf\u3092\u4fdd\u5b58\u3059\u308b\u3002\u30b3\u30f3\u30c6\u30ca\u3092\u4f5c\u308a\u76f4\u3057\u3066\u3082\u3001\u5c0f\u8aac\u30c7\u30fc\u30bf\u3084\u30e6\u30fc\u30b6\u30fc\u30c7\u30fc\u30bf\u306f\u6d88\u3048\u306a\u3044\u3002<\/li>\n\n\n\n<li>.\/backend\/sql:\/docker-entrypoint-initdb.d: MariaDB\u3084MySQL\u306e\u516c\u5f0f\u30a4\u30e1\u30fc\u30b8\u306f\u3001\/docker-entrypoint-initdb.d \u306b\u7f6e\u304b\u308c\u305f .sql \u30d5\u30a1\u30a4\u30eb\u3092\u3001\u521d\u56de\u8d77\u52d5\u6642\u306b\u81ea\u52d5\u5b9f\u884c\u3057\u3066\u304f\u308c\u308b\u3002 \u30c6\u30fc\u30d6\u30eb\u4f5c\u6210\u3084\u521d\u671f\u30c7\u30fc\u30bf\u306e\u6295\u5165\u3092\u81ea\u52d5\u5316\u3067\u304d\u308b\u305f\u3081\u3001\u958b\u767a\u30e1\u30f3\u30d0\u30fc\u5168\u54e1\u304c docker compose up \u4e00\u767a\u3067\u540c\u3058DB\u72b6\u614b\u304b\u3089\u958b\u767a\u3092\u30b9\u30bf\u30fc\u30c8\u3067\u304d\u308b\u3002<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4eca\u56de\u306f\u3001\u5178\u578b\u7684\u306a\u300c\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\uff08React\u7b49\uff09 + \u30d0\u30c3\u30af\u30a8\u30f3\u30c9\uff08Spring\/Node\u7b49\uff09 + \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\uff08MariaDB\uff09\u300d\u306e\u69cb\u6210\u3092\u4f8b\u306b docker-compose.yml \u3092\u66f8\u3044\u305f\u3002 \u4eca\u56de\u306e\u69cb\u6210 3\u3064\u306e\u30b3\u30f3\u30c6 &hellip; <a href=\"https:\/\/technologyagency.net\/wordpress\/2026\/01\/06\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\/\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;Docker Compose\u3067\u3001Web\u30a2\u30d7\u30ea\u958b\u767a\u74b0\u5883\u3092\u4f5c\u308b&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-3186","post","type-post","status-publish","format-standard","hentry","category-8"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Docker Compose\u3067\u3001Web\u30a2\u30d7\u30ea\u958b\u767a\u74b0\u5883\u3092\u4f5c\u308b - I want to lead an easy life.<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/technologyagency.net\/wordpress\/2026\/01\/06\/docker-compose\u3067\u3001web\u30a2\u30d7\u30ea\u958b\u767a\u74b0\u5883\u3092\u4f5c\u308b\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker Compose\u3067\u3001Web\u30a2\u30d7\u30ea\u958b\u767a\u74b0\u5883\u3092\u4f5c\u308b - I want to lead an easy life.\" \/>\n<meta property=\"og:description\" content=\"\u4eca\u56de\u306f\u3001\u5178\u578b\u7684\u306a\u300c\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\uff08React\u7b49\uff09 + \u30d0\u30c3\u30af\u30a8\u30f3\u30c9\uff08Spring\/Node\u7b49\uff09 + \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\uff08MariaDB\uff09\u300d\u306e\u69cb\u6210\u3092\u4f8b\u306b docker-compose.yml \u3092\u66f8\u3044\u305f\u3002 \u4eca\u56de\u306e\u69cb\u6210 3\u3064\u306e\u30b3\u30f3\u30c6 &hellip; &quot;Docker Compose\u3067\u3001Web\u30a2\u30d7\u30ea\u958b\u767a\u74b0\u5883\u3092\u4f5c\u308b&quot; \u306e\u7d9a\u304d\u3092\u8aad\u3080\" \/>\n<meta property=\"og:url\" content=\"https:\/\/technologyagency.net\/wordpress\/2026\/01\/06\/docker-compose\u3067\u3001web\u30a2\u30d7\u30ea\u958b\u767a\u74b0\u5883\u3092\u4f5c\u308b\/\" \/>\n<meta property=\"og:site_name\" content=\"I want to lead an easy life.\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-06T12:09:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-06T12:09:22+00:00\" \/>\n<meta name=\"author\" content=\"hide6644\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"hide6644\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"7\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2026\\\/01\\\/06\\\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2026\\\/01\\\/06\\\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\\\/\"},\"author\":{\"name\":\"hide6644\",\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/#\\\/schema\\\/person\\\/a25355beaa102da2b2d79b00f5865b63\"},\"headline\":\"Docker Compose\u3067\u3001Web\u30a2\u30d7\u30ea\u958b\u767a\u74b0\u5883\u3092\u4f5c\u308b\",\"datePublished\":\"2026-01-06T12:09:20+00:00\",\"dateModified\":\"2026-01-06T12:09:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2026\\\/01\\\/06\\\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\\\/\"},\"wordCount\":51,\"commentCount\":1,\"articleSection\":[\"\u904b\u7528&amp;\u958b\u767a\u6280\u8853\"],\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2026\\\/01\\\/06\\\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2026\\\/01\\\/06\\\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\\\/\",\"url\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2026\\\/01\\\/06\\\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\\\/\",\"name\":\"Docker Compose\u3067\u3001Web\u30a2\u30d7\u30ea\u958b\u767a\u74b0\u5883\u3092\u4f5c\u308b - I want to lead an easy life.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/#website\"},\"datePublished\":\"2026-01-06T12:09:20+00:00\",\"dateModified\":\"2026-01-06T12:09:22+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/#\\\/schema\\\/person\\\/a25355beaa102da2b2d79b00f5865b63\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2026\\\/01\\\/06\\\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\\\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2026\\\/01\\\/06\\\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/2026\\\/01\\\/06\\\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u30db\u30fc\u30e0\",\"item\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker Compose\u3067\u3001Web\u30a2\u30d7\u30ea\u958b\u767a\u74b0\u5883\u3092\u4f5c\u308b\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/\",\"name\":\"I want to lead an easy life.\",\"description\":\"Technical Notes\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/#\\\/schema\\\/person\\\/a25355beaa102da2b2d79b00f5865b63\",\"name\":\"hide6644\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a5df48aece572798f5aacd2dd90331e28bd249c13f736badb5116e3d43c5d5e9?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a5df48aece572798f5aacd2dd90331e28bd249c13f736badb5116e3d43c5d5e9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a5df48aece572798f5aacd2dd90331e28bd249c13f736badb5116e3d43c5d5e9?s=96&d=mm&r=g\",\"caption\":\"hide6644\"},\"url\":\"https:\\\/\\\/technologyagency.net\\\/wordpress\\\/author\\\/hide6644\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Docker Compose\u3067\u3001Web\u30a2\u30d7\u30ea\u958b\u767a\u74b0\u5883\u3092\u4f5c\u308b - I want to lead an easy life.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/technologyagency.net\/wordpress\/2026\/01\/06\/docker-compose\u3067\u3001web\u30a2\u30d7\u30ea\u958b\u767a\u74b0\u5883\u3092\u4f5c\u308b\/","og_locale":"ja_JP","og_type":"article","og_title":"Docker Compose\u3067\u3001Web\u30a2\u30d7\u30ea\u958b\u767a\u74b0\u5883\u3092\u4f5c\u308b - I want to lead an easy life.","og_description":"\u4eca\u56de\u306f\u3001\u5178\u578b\u7684\u306a\u300c\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\uff08React\u7b49\uff09 + \u30d0\u30c3\u30af\u30a8\u30f3\u30c9\uff08Spring\/Node\u7b49\uff09 + \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\uff08MariaDB\uff09\u300d\u306e\u69cb\u6210\u3092\u4f8b\u306b docker-compose.yml \u3092\u66f8\u3044\u305f\u3002 \u4eca\u56de\u306e\u69cb\u6210 3\u3064\u306e\u30b3\u30f3\u30c6 &hellip; \"Docker Compose\u3067\u3001Web\u30a2\u30d7\u30ea\u958b\u767a\u74b0\u5883\u3092\u4f5c\u308b\" \u306e\u7d9a\u304d\u3092\u8aad\u3080","og_url":"https:\/\/technologyagency.net\/wordpress\/2026\/01\/06\/docker-compose\u3067\u3001web\u30a2\u30d7\u30ea\u958b\u767a\u74b0\u5883\u3092\u4f5c\u308b\/","og_site_name":"I want to lead an easy life.","article_published_time":"2026-01-06T12:09:20+00:00","article_modified_time":"2026-01-06T12:09:22+00:00","author":"hide6644","twitter_card":"summary_large_image","twitter_misc":{"\u57f7\u7b46\u8005":"hide6644","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"7\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/technologyagency.net\/wordpress\/2026\/01\/06\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\/#article","isPartOf":{"@id":"https:\/\/technologyagency.net\/wordpress\/2026\/01\/06\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\/"},"author":{"name":"hide6644","@id":"https:\/\/technologyagency.net\/wordpress\/#\/schema\/person\/a25355beaa102da2b2d79b00f5865b63"},"headline":"Docker Compose\u3067\u3001Web\u30a2\u30d7\u30ea\u958b\u767a\u74b0\u5883\u3092\u4f5c\u308b","datePublished":"2026-01-06T12:09:20+00:00","dateModified":"2026-01-06T12:09:22+00:00","mainEntityOfPage":{"@id":"https:\/\/technologyagency.net\/wordpress\/2026\/01\/06\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\/"},"wordCount":51,"commentCount":1,"articleSection":["\u904b\u7528&amp;\u958b\u767a\u6280\u8853"],"inLanguage":"ja","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/technologyagency.net\/wordpress\/2026\/01\/06\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/technologyagency.net\/wordpress\/2026\/01\/06\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\/","url":"https:\/\/technologyagency.net\/wordpress\/2026\/01\/06\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\/","name":"Docker Compose\u3067\u3001Web\u30a2\u30d7\u30ea\u958b\u767a\u74b0\u5883\u3092\u4f5c\u308b - I want to lead an easy life.","isPartOf":{"@id":"https:\/\/technologyagency.net\/wordpress\/#website"},"datePublished":"2026-01-06T12:09:20+00:00","dateModified":"2026-01-06T12:09:22+00:00","author":{"@id":"https:\/\/technologyagency.net\/wordpress\/#\/schema\/person\/a25355beaa102da2b2d79b00f5865b63"},"breadcrumb":{"@id":"https:\/\/technologyagency.net\/wordpress\/2026\/01\/06\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/technologyagency.net\/wordpress\/2026\/01\/06\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/technologyagency.net\/wordpress\/2026\/01\/06\/docker-compose%e3%81%a7%e3%80%81web%e3%82%a2%e3%83%97%e3%83%aa%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e3%82%92%e4%bd%9c%e3%82%8b\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u30db\u30fc\u30e0","item":"https:\/\/technologyagency.net\/wordpress\/"},{"@type":"ListItem","position":2,"name":"Docker Compose\u3067\u3001Web\u30a2\u30d7\u30ea\u958b\u767a\u74b0\u5883\u3092\u4f5c\u308b"}]},{"@type":"WebSite","@id":"https:\/\/technologyagency.net\/wordpress\/#website","url":"https:\/\/technologyagency.net\/wordpress\/","name":"I want to lead an easy life.","description":"Technical Notes","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/technologyagency.net\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/technologyagency.net\/wordpress\/#\/schema\/person\/a25355beaa102da2b2d79b00f5865b63","name":"hide6644","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/secure.gravatar.com\/avatar\/a5df48aece572798f5aacd2dd90331e28bd249c13f736badb5116e3d43c5d5e9?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a5df48aece572798f5aacd2dd90331e28bd249c13f736badb5116e3d43c5d5e9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a5df48aece572798f5aacd2dd90331e28bd249c13f736badb5116e3d43c5d5e9?s=96&d=mm&r=g","caption":"hide6644"},"url":"https:\/\/technologyagency.net\/wordpress\/author\/hide6644\/"}]}},"_links":{"self":[{"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/posts\/3186","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/comments?post=3186"}],"version-history":[{"count":7,"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/posts\/3186\/revisions"}],"predecessor-version":[{"id":3193,"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/posts\/3186\/revisions\/3193"}],"wp:attachment":[{"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/media?parent=3186"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/categories?post=3186"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/technologyagency.net\/wordpress\/wp-json\/wp\/v2\/tags?post=3186"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}