{"id":3453,"date":"2025-11-13T10:16:24","date_gmt":"2025-11-13T03:16:24","guid":{"rendered":"https:\/\/portal-atlasx.cdg.co.th\/home\/?post_type=docs&#038;p=3453"},"modified":"2025-11-13T10:16:33","modified_gmt":"2025-11-13T03:16:33","slug":"using-docker-compose","status":"publish","type":"docs","link":"https:\/\/portal-atlasx.cdg.co.th\/home\/docs\/atlasx-container\/developing\/using-docker-compose\/","title":{"rendered":"Using Docker Compose"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\" id=\"using-docker-compose\">Using Docker Compose<\/h1>\n\n\n\n<p>\u0e42\u0e14\u0e22\u0e1b\u0e01\u0e15\u0e34\u0e41\u0e25\u0e49\u0e27\u0e27\u0e34\u0e18\u0e35\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e40\u0e2b\u0e21\u0e32\u0e30\u0e2a\u0e21\u0e17\u0e35\u0e48\u0e2a\u0e38\u0e14\u0e43\u0e19\u0e01\u0e32\u0e23\u0e23\u0e31\u0e19 container \u0e04\u0e37\u0e2d\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49&nbsp;<a href=\"https:\/\/docs.docker.com\/compose\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker Compose<\/a>&nbsp;\u0e0b\u0e36\u0e48\u0e07\u0e08\u0e30\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e40\u0e23\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e23\u0e31\u0e19 container \u0e44\u0e14\u0e49\u0e07\u0e48\u0e32\u0e22\u0e02\u0e36\u0e49\u0e19 \u0e42\u0e14\u0e22\u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e23\u0e31\u0e19\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07 docker run \u0e17\u0e38\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07 \u0e2d\u0e35\u0e01\u0e17\u0e31\u0e49\u0e07\u0e22\u0e31\u0e07\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e23\u0e31\u0e19 container \u0e44\u0e14\u0e49\u0e2b\u0e25\u0e32\u0e22 \u0e46 container \u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e01\u0e31\u0e19\u0e43\u0e19\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e40\u0e14\u0e35\u0e22\u0e27\u0e44\u0e14\u0e49\u0e40\u0e0a\u0e48\u0e19\u0e01\u0e31\u0e19<\/p>\n\n\n\n<p>\u0e23\u0e27\u0e21\u0e16\u0e36\u0e07\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49 Docker Compose \u0e19\u0e31\u0e49\u0e19\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e23\u0e31\u0e19 container \u0e02\u0e36\u0e49\u0e19\u0e21\u0e32\u0e08\u0e32\u0e01&nbsp;<code>Dockerfile<\/code>&nbsp;\u0e44\u0e14\u0e49\u0e42\u0e14\u0e22\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07 build image \u0e14\u0e49\u0e27\u0e22\u0e15\u0e31\u0e27\u0e40\u0e2d\u0e07\u0e40\u0e1e\u0e23\u0e32\u0e30\u0e27\u0e48\u0e32 Docker Compose \u0e21\u0e35\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e17\u0e35\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16 build image \u0e43\u0e2b\u0e49\u0e40\u0e23\u0e32\u0e44\u0e14\u0e49\u0e42\u0e14\u0e22\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"introduction\">Introduction<\/h2>\n\n\n\n<p>\u0e42\u0e14\u0e22\u0e1b\u0e01\u0e15\u0e34\u0e41\u0e25\u0e49\u0e27\u0e01\u0e32\u0e23\u0e23\u0e31\u0e19\u0e14\u0e49\u0e27\u0e22 Docker Compose \u0e40\u0e23\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35 compose file \u0e17\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e44\u0e1f\u0e25\u0e4c YAML \u0e40\u0e0a\u0e48\u0e19&nbsp;<code>docker-compose.yml<\/code>&nbsp;\u0e43\u0e19\u0e01\u0e32\u0e23\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e04\u0e48\u0e32\u0e15\u0e48\u0e32\u0e07 \u0e46 \u0e02\u0e2d\u0e07 container \u0e44\u0e21\u0e48\u0e27\u0e48\u0e32\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0e0a\u0e37\u0e48\u0e2d container<\/li>\n\n\n\n<li>port \u0e02\u0e2d\u0e07 container<\/li>\n\n\n\n<li>network \u0e02\u0e2d\u0e07 container<\/li>\n\n\n\n<li>volume \u0e02\u0e2d\u0e07 container<\/li>\n\n\n\n<li>environment variable \u0e02\u0e2d\u0e07 container<\/li>\n\n\n\n<li>\u0e41\u0e25\u0e30\u0e2d\u0e37\u0e48\u0e19 \u0e46<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"example\">Example<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;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># docker-compose.yml\nversion: '3.8'\n\nservices:\n  webapp:\n    image: 'atlasx-webapp:1.0.0'\n    container_name: webapp\n    ports:\n      - '8080:8080'\n    restart: unless-stopped<\/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=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #000000\"># <\/span><span style=\"color: #001080\">docker<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">compose<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #001080\">yml<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">version: <\/span><span style=\"color: #A31515\">&#39;3.8&#39;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">services:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  webapp:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    image: <\/span><span style=\"color: #A31515\">&#39;atlasx-webapp:1.0.0&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    container_name: <\/span><span style=\"color: #001080\">webapp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    ports:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      - <\/span><span style=\"color: #A31515\">&#39;8080:8080&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    restart: <\/span><span style=\"color: #001080\">unless<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">stopped<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u0e40\u0e0a\u0e48\u0e19 compose file \u0e19\u0e35\u0e49 \u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e01\u0e32\u0e23\u0e23\u0e31\u0e19 AtlasX Web Application \u0e0b\u0e36\u0e48\u0e07\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30\u0e01\u0e32\u0e23\u0e23\u0e31\u0e19\u0e04\u0e37\u0e2d \u0e43\u0e0a\u0e49 image \u0e17\u0e35\u0e48\u0e0a\u0e37\u0e48\u0e2d\u0e27\u0e48\u0e32&nbsp;<code>atlasx-webapp:1.0.0<\/code>&nbsp;\u0e41\u0e25\u0e30\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d container \u0e27\u0e48\u0e32&nbsp;<code>webapp<\/code>&nbsp;\u0e41\u0e25\u0e30\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21 port&nbsp;<code>8080<\/code>&nbsp;\u0e02\u0e2d\u0e07 Host \u0e44\u0e1b\u0e17\u0e35\u0e48 port&nbsp;<code>80<\/code>&nbsp;\u0e02\u0e2d\u0e07 container \u0e41\u0e25\u0e30\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e43\u0e2b\u0e49 container \u0e19\u0e35\u0e49 restart \u0e43\u0e2b\u0e21\u0e48\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34\u0e2b\u0e32\u0e01 container \u0e19\u0e35\u0e49\u0e40\u0e2a\u0e35\u0e22\u0e2b\u0e32\u0e22<\/p>\n\n\n\n<p>\u0e0b\u0e36\u0e48\u0e07\u0e40\u0e23\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e23\u0e27\u0e21 stack \u0e01\u0e32\u0e23\u0e23\u0e31\u0e19 container \u0e44\u0e14\u0e49\u0e2b\u0e25\u0e32\u0e22 \u0e46 container \u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49 compose file \u0e44\u0e1f\u0e25\u0e4c\u0e40\u0e14\u0e35\u0e22\u0e27\u0e44\u0e14\u0e49\u0e40\u0e0a\u0e48\u0e19\u0e01\u0e31\u0e19<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;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># docker-compose.yml\nversion: '3.8'\n\nservices:\n  webapp:\n    image: 'atlasx-webapp:1.0.0'\n    container_name: webapp\n    ports:\n      - '8080:8080'\n    restart: unless-stopped\n  webservice:\n    image: 'atlasx-webservice:1.0.0'\n    container_name: webservice\n    ports:\n      - '5080:80'\n    restart: unless-stopped<\/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=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #000000\"># <\/span><span style=\"color: #001080\">docker<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">compose<\/span><span style=\"color: #000000\">.<\/span><span style=\"color: #001080\">yml<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">version: <\/span><span style=\"color: #A31515\">&#39;3.8&#39;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">services:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  webapp:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    image: <\/span><span style=\"color: #A31515\">&#39;atlasx-webapp:1.0.0&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    container_name: <\/span><span style=\"color: #001080\">webapp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    ports:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      - <\/span><span style=\"color: #A31515\">&#39;8080:8080&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    restart: <\/span><span style=\"color: #001080\">unless<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">stopped<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  webservice:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    image: <\/span><span style=\"color: #A31515\">&#39;atlasx-webservice:1.0.0&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    container_name: <\/span><span style=\"color: #001080\">webservice<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    ports:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      - <\/span><span style=\"color: #A31515\">&#39;5080:80&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    restart: <\/span><span style=\"color: #001080\">unless<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">stopped<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u0e40\u0e0a\u0e48\u0e19 compose file \u0e19\u0e35\u0e49 \u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e01\u0e32\u0e23\u0e23\u0e31\u0e19 AtlasX Web Application \u0e41\u0e25\u0e30 AtlasX Web Service \u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e01\u0e31\u0e19 \u0e42\u0e14\u0e22\u0e08\u0e30\u0e41\u0e1a\u0e48\u0e07\u0e2d\u0e2d\u0e01\u0e40\u0e1b\u0e47\u0e19 2 service \u0e04\u0e37\u0e2d<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>webapp<\/strong>\u00a0\u0e43\u0e0a\u0e49 image \u0e17\u0e35\u0e48\u0e0a\u0e37\u0e48\u0e2d\u0e27\u0e48\u0e32\u00a0<code>atlasx-webapp:1.0.0<\/code>\u00a0\u0e41\u0e25\u0e30\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d container \u0e27\u0e48\u0e32\u00a0<code>webapp<\/code>\u00a0\u0e41\u0e25\u0e30\u0e40\u0e1b\u0e34\u0e14 port \u0e17\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19 \u0e41\u0e25\u0e30\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21 port\u00a0<code>8080<\/code>\u00a0\u0e02\u0e2d\u0e07 Host \u0e44\u0e1b\u0e17\u0e35\u0e48 port\u00a0<code>80<\/code>\u00a0\u0e02\u0e2d\u0e07 container \u0e41\u0e25\u0e30\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e43\u0e2b\u0e49 container \u0e19\u0e35\u0e49 restart \u0e43\u0e2b\u0e21\u0e48\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34\u0e2b\u0e32\u0e01 container \u0e19\u0e35\u0e49\u0e40\u0e2a\u0e35\u0e22\u0e2b\u0e32\u0e22<\/li>\n\n\n\n<li><strong>webservice<\/strong>\u00a0\u0e43\u0e0a\u0e49 image \u0e17\u0e35\u0e48\u0e0a\u0e37\u0e48\u0e2d\u0e27\u0e48\u0e32\u00a0<code>atlasx-webservice:1.0.0<\/code>\u00a0\u0e41\u0e25\u0e30\u0e15\u0e31\u0e49\u0e07\u0e0a\u0e37\u0e48\u0e2d container \u0e27\u0e48\u0e32\u00a0<code>webservice<\/code>\u00a0\u0e41\u0e25\u0e30\u0e40\u0e1b\u0e34\u0e14 port \u0e17\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u00a0<code>5080<\/code>\u00a0\u0e02\u0e2d\u0e07 host \u0e41\u0e25\u0e30\u0e40\u0e1b\u0e34\u0e14 port \u0e17\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u00a0<code>80<\/code>\u00a0\u0e02\u0e2d\u0e07 container \u0e41\u0e25\u0e30\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e43\u0e2b\u0e49 container \u0e19\u0e35\u0e49 restart \u0e43\u0e2b\u0e21\u0e48\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34\u0e2b\u0e32\u0e01 container \u0e19\u0e35\u0e49\u0e40\u0e2a\u0e35\u0e22\u0e2b\u0e32\u0e22<\/li>\n<\/ol>\n\n\n\n<p>\u0e0b\u0e36\u0e48\u0e07\u0e43\u0e19\u0e01\u0e32\u0e23\u0e23\u0e31\u0e19\u0e1c\u0e48\u0e32\u0e19 Docker Compose \u0e19\u0e31\u0e49\u0e19\u0e01\u0e47\u0e43\u0e2b\u0e49\u0e44\u0e1b\u0e17\u0e35\u0e48 directory \u0e17\u0e35\u0e48\u0e21\u0e35 compose file \u0e19\u0e35\u0e49\u0e2d\u0e22\u0e39\u0e48 \u0e41\u0e25\u0e49\u0e27\u0e23\u0e31\u0e19\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;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>docker-compose up -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=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #001080\">docker<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">compose<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">up<\/span><span style=\"color: #000000\"> -<\/span><span style=\"color: #001080\">d<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u0e42\u0e14\u0e22\u0e17\u0e35\u0e48&nbsp;<code>-d<\/code>&nbsp;\u0e04\u0e37\u0e2d flag \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e23\u0e31\u0e19 container \u0e43\u0e19 background \u0e16\u0e49\u0e32\u0e2b\u0e32\u0e01\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e23\u0e31\u0e19 container \u0e43\u0e19 foreground \u0e01\u0e47\u0e43\u0e2b\u0e49\u0e25\u0e1a flag \u0e19\u0e35\u0e49\u0e2d\u0e2d\u0e01\u0e44\u0e1b<\/p>\n\n\n\n<p>\u0e41\u0e25\u0e30\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e2b\u0e22\u0e38\u0e14\u0e01\u0e32\u0e23\u0e23\u0e31\u0e19 container \u0e01\u0e47\u0e43\u0e2b\u0e49\u0e23\u0e31\u0e19\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;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>docker-compose down<\/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=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #001080\">docker<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">compose<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">down<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Docker \u0e08\u0e30\u0e17\u0e33\u0e01\u0e32\u0e23\u0e2b\u0e22\u0e38\u0e14 container \u0e17\u0e35\u0e48\u0e23\u0e31\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e30\u0e25\u0e1a container \u0e17\u0e35\u0e48\u0e23\u0e31\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e2d\u0e2d\u0e01\u0e44\u0e1b\u0e43\u0e2b\u0e49\u0e42\u0e14\u0e22\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"compose-atlasx-web-application\">Compose AtlasX Web Application<\/h2>\n\n\n\n<p>\u0e43\u0e19 AtlasX Web Application \u0e40\u0e23\u0e32\u0e44\u0e14\u0e49\u0e17\u0e33\u0e01\u0e32\u0e23\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e44\u0e1f\u0e25\u0e4c&nbsp;<code>docker-compose.yml<\/code>&nbsp;\u0e44\u0e1b\u0e43\u0e2b\u0e49\u0e41\u0e25\u0e49\u0e27\u0e14\u0e31\u0e07\u0e19\u0e35\u0e49<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;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>version: '3.8'\n\nservices:\n  webapp:\n    build:\n      context: ClientApp\n      dockerfile: docker\/Dockerfile\n      args:\n        - NPM_TOKEN=${NPM_TOKEN}\n    container_name: webapp\n    ports:\n      - '8080:8080'\n    restart: unless-stopped<\/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=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #000000\">version: <\/span><span style=\"color: #A31515\">&#39;3.8&#39;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">services:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  webapp:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    build:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      context: <\/span><span style=\"color: #001080\">ClientApp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      dockerfile: <\/span><span style=\"color: #001080\">docker<\/span><span style=\"color: #000000\">\/<\/span><span style=\"color: #001080\">Dockerfile<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      args:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">        - <\/span><span style=\"color: #0070C1\">NPM_TOKEN<\/span><span style=\"color: #000000\">=<\/span><span style=\"color: #001080\">$<\/span><span style=\"color: #000000\">{<\/span><span style=\"color: #0070C1\">NPM_TOKEN<\/span><span style=\"color: #000000\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    container_name: <\/span><span style=\"color: #001080\">webapp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    ports:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      - <\/span><span style=\"color: #A31515\">&#39;8080:8080&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    restart: <\/span><span style=\"color: #001080\">unless<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">stopped<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u0e01\u0e33\u0e2b\u0e19\u0e14 build arguments \u0e14\u0e49\u0e27\u0e22\u0e01\u0e32\u0e23\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01\u0e44\u0e1f\u0e25\u0e4c&nbsp;<code>example.env<\/code>&nbsp;\u0e44\u0e1b\u0e40\u0e1b\u0e47\u0e19\u0e44\u0e1f\u0e25\u0e4c&nbsp;<code>.env<\/code>&nbsp;\u0e41\u0e25\u0e49\u0e27\u0e41\u0e01\u0e49\u0e44\u0e02\u0e04\u0e48\u0e32\u0e43\u0e19\u0e44\u0e1f\u0e25\u0e4c&nbsp;<code>.env<\/code>&nbsp;\u0e43\u0e2b\u0e49\u0e04\u0e23\u0e1a\u0e16\u0e49\u0e27\u0e19 \u0e0b\u0e36\u0e48\u0e07\u0e1b\u0e23\u0e30\u0e01\u0e2d\u0e1a\u0e44\u0e1b\u0e14\u0e49\u0e27\u0e22<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Variable<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>NPM_TOKEN<\/code><\/td><td>npm token \u0e02\u0e2d\u0e07 atlasx npm registry<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>\u0e0b\u0e36\u0e48\u0e07 npm token \u0e19\u0e31\u0e49\u0e19\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e2b\u0e32\u0e44\u0e14\u0e49\u0e08\u0e32\u0e01\u0e44\u0e1f\u0e25\u0e4c&nbsp;<code>.npmrc<\/code><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;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># MacOS \/ Linux\ncat $HOME\/.npmrc | grep _authToken<\/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=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #000000\"># <\/span><span style=\"color: #001080\">MacOS<\/span><span style=\"color: #000000\"> \/ <\/span><span style=\"color: #001080\">Linux<\/span><\/span>\n<span class=\"line\"><span style=\"color: #001080\">cat<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">$HOME<\/span><span style=\"color: #000000\">\/.<\/span><span style=\"color: #001080\">npmrc<\/span><span style=\"color: #000000\"> | <\/span><span style=\"color: #001080\">grep<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">_authToken<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;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># Windows\ntype %USERPROFILE%\\.npmrc | findstr _authToken<\/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=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #000000\"># <\/span><span style=\"color: #001080\">Windows<\/span><\/span>\n<span class=\"line\"><span style=\"color: #001080\">type<\/span><span style=\"color: #000000\"> %<\/span><span style=\"color: #0070C1\">USERPROFILE<\/span><span style=\"color: #000000\">%\\.<\/span><span style=\"color: #001080\">npmrc<\/span><span style=\"color: #000000\"> | <\/span><span style=\"color: #001080\">findstr<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">_authToken<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h5 class=\"wp-block-heading\">Note<br><\/h5>\n\n\n\n<p>\ud83d\udea8 \u0e2b\u0e49\u0e32\u0e21 push \u0e44\u0e1f\u0e25\u0e4c&nbsp;<code>.env<\/code>&nbsp;\u0e02\u0e36\u0e49\u0e19\u0e44\u0e1b\u0e17\u0e35\u0e48 VSC \u0e2b\u0e23\u0e37\u0e2d\u0e40\u0e1b\u0e34\u0e14\u0e40\u0e1c\u0e22 credentials \u0e43\u0e14\u0e46 \u0e43\u0e19\u0e44\u0e1f\u0e25\u0e4c&nbsp;<code>.env<\/code>&nbsp;\u0e19\u0e35\u0e49\u0e42\u0e14\u0e22\u0e40\u0e14\u0e47\u0e14\u0e02\u0e32\u0e14<\/p>\n<\/blockquote>\n\n\n\n<p>\u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e43\u0e2b\u0e49\u0e44\u0e1b\u0e17\u0e35\u0e48 directory \u0e17\u0e35\u0e48\u0e21\u0e35\u0e44\u0e1f\u0e25\u0e4c&nbsp;<code>docker-compose.yml<\/code>&nbsp;\u0e19\u0e35\u0e49\u0e2d\u0e22\u0e39\u0e48 \u0e41\u0e25\u0e49\u0e27\u0e23\u0e31\u0e19\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;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>docker-compose up -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=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #001080\">docker<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">compose<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">up<\/span><span style=\"color: #000000\"> -<\/span><span style=\"color: #001080\">d<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e0a\u0e49 option&nbsp;<code>--build<\/code>&nbsp;\u0e43\u0e19\u0e01\u0e32\u0e23 build image \u0e43\u0e2b\u0e21\u0e48\u0e44\u0e14\u0e49<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;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>docker-compose up -d --build<\/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=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #001080\">docker<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">compose<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">up<\/span><span style=\"color: #000000\"> -<\/span><span style=\"color: #001080\">d<\/span><span style=\"color: #000000\"> --<\/span><span style=\"color: #001080\">build<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u0e41\u0e25\u0e49\u0e27\u0e25\u0e2d\u0e07\u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b\u0e17\u0e35\u0e48&nbsp;<a href=\"http:\/\/localhost:8080\/\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/localhost:8080<\/a>&nbsp;\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e14\u0e39\u0e1c\u0e25\u0e25\u0e31\u0e1e\u0e18\u0e4c<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"clean-up\">Clean Up<\/h3>\n\n\n\n<p>\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e17\u0e33\u0e01\u0e32\u0e23\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e41\u0e25\u0e49\u0e27 \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e17\u0e33\u0e01\u0e32\u0e23\u0e25\u0e1a container \u0e17\u0e35\u0e48\u0e23\u0e31\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e44\u0e14\u0e49\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;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>docker-compose down<\/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=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #001080\">docker<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">compose<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">down<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"compose-atlasx-web-service\">Compose AtlasX Web Service<\/h2>\n\n\n\n<p>\u0e43\u0e19 AtlasX Web Service \u0e40\u0e23\u0e32\u0e44\u0e14\u0e49\u0e17\u0e33\u0e01\u0e32\u0e23\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e44\u0e1f\u0e25\u0e4c&nbsp;<code>docker-compose.yml<\/code>&nbsp;\u0e44\u0e1b\u0e43\u0e2b\u0e49\u0e41\u0e25\u0e49\u0e27\u0e14\u0e31\u0e07\u0e19\u0e35\u0e49<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;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>version: '3.8'\n\nservices:\n  webservice:\n    build:\n      context: .\n      dockerfile: Dockerfile\n      args:\n        - NUGET_TELERIK_USER=${NUGET_TELERIK_USER}\n        - NUGET_TELERIK_PASSWORD=${NUGET_TELERIK_PASSWORD}\n        - NUGET_ATLASX_USER=${NUGET_ATLASX_USER}\n        - NUGET_ATLASX_PASSWORD=${NUGET_ATLASX_PASSWORD}\n    container_name: webservice\n    ports:\n      - '5000:8080'\n    restart: unless-stopped<\/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=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #000000\">version: <\/span><span style=\"color: #A31515\">&#39;3.8&#39;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #000000\">services:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">  webservice:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    build:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      context: .<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      dockerfile: <\/span><span style=\"color: #001080\">Dockerfile<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      args:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">        - <\/span><span style=\"color: #0070C1\">NUGET_TELERIK_USER<\/span><span style=\"color: #000000\">=<\/span><span style=\"color: #001080\">$<\/span><span style=\"color: #000000\">{<\/span><span style=\"color: #0070C1\">NUGET_TELERIK_USER<\/span><span style=\"color: #000000\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">        - <\/span><span style=\"color: #0070C1\">NUGET_TELERIK_PASSWORD<\/span><span style=\"color: #000000\">=<\/span><span style=\"color: #001080\">$<\/span><span style=\"color: #000000\">{<\/span><span style=\"color: #0070C1\">NUGET_TELERIK_PASSWORD<\/span><span style=\"color: #000000\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">        - <\/span><span style=\"color: #0070C1\">NUGET_ATLASX_USER<\/span><span style=\"color: #000000\">=<\/span><span style=\"color: #001080\">$<\/span><span style=\"color: #000000\">{<\/span><span style=\"color: #0070C1\">NUGET_ATLASX_USER<\/span><span style=\"color: #000000\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">        - <\/span><span style=\"color: #0070C1\">NUGET_ATLASX_PASSWORD<\/span><span style=\"color: #000000\">=<\/span><span style=\"color: #001080\">$<\/span><span style=\"color: #000000\">{<\/span><span style=\"color: #0070C1\">NUGET_ATLASX_PASSWORD<\/span><span style=\"color: #000000\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    container_name: <\/span><span style=\"color: #001080\">webservice<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    ports:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">      - <\/span><span style=\"color: #A31515\">&#39;5000:8080&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #000000\">    restart: <\/span><span style=\"color: #001080\">unless<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">stopped<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u0e01\u0e33\u0e2b\u0e19\u0e14 build arguments \u0e14\u0e49\u0e27\u0e22\u0e01\u0e32\u0e23\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01\u0e44\u0e1f\u0e25\u0e4c&nbsp;<code>example.env<\/code>&nbsp;\u0e44\u0e1b\u0e40\u0e1b\u0e47\u0e19\u0e44\u0e1f\u0e25\u0e4c&nbsp;<code>.env<\/code>&nbsp;\u0e41\u0e25\u0e49\u0e27\u0e41\u0e01\u0e49\u0e44\u0e02\u0e04\u0e48\u0e32\u0e43\u0e19\u0e44\u0e1f\u0e25\u0e4c&nbsp;<code>.env<\/code>&nbsp;\u0e43\u0e2b\u0e49\u0e04\u0e23\u0e1a\u0e16\u0e49\u0e27\u0e19 \u0e0b\u0e36\u0e48\u0e07\u0e1b\u0e23\u0e30\u0e01\u0e2d\u0e1a\u0e44\u0e1b\u0e14\u0e49\u0e27\u0e22<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Variable<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>NUGET_TELERIK_USER<\/code><\/td><td>Username \u0e02\u0e2d\u0e07 telerik \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e02\u0e2d\u0e44\u0e14\u0e49\u0e08\u0e32\u0e01\u0e17\u0e35\u0e21 AtlasX<\/td><\/tr><tr><td><code>NUGET_TELERIK_PASSWORD<\/code><\/td><td>Password \u0e02\u0e2d\u0e07 telerik \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e02\u0e2d\u0e44\u0e14\u0e49\u0e08\u0e32\u0e01\u0e17\u0e35\u0e21 AtlasX<\/td><\/tr><tr><td><code>NUGET_ATLASX_USER<\/code><\/td><td>Username \u0e02\u0e2d\u0e07 CDG Account<\/td><\/tr><tr><td><code>NUGET_ATLASX_PASSWORD<\/code><\/td><td>Password \u0e02\u0e2d\u0e07 CDG Account<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h5 class=\"wp-block-heading\">Note<br><\/h5>\n\n\n\n<p>\ud83d\udea8 \u0e2b\u0e49\u0e32\u0e21 push \u0e44\u0e1f\u0e25\u0e4c&nbsp;<code>.env<\/code>&nbsp;\u0e02\u0e36\u0e49\u0e19\u0e44\u0e1b\u0e17\u0e35\u0e48 VSC \u0e2b\u0e23\u0e37\u0e2d\u0e40\u0e1b\u0e34\u0e14\u0e40\u0e1c\u0e22 credentials \u0e43\u0e14\u0e46 \u0e43\u0e19\u0e44\u0e1f\u0e25\u0e4c&nbsp;<code>.env<\/code>&nbsp;\u0e19\u0e35\u0e49\u0e42\u0e14\u0e22\u0e40\u0e14\u0e47\u0e14\u0e02\u0e32\u0e14<\/p>\n<\/blockquote>\n\n\n\n<p>\u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e43\u0e2b\u0e49\u0e44\u0e1b\u0e17\u0e35\u0e48 directory \u0e17\u0e35\u0e48\u0e21\u0e35\u0e44\u0e1f\u0e25\u0e4c&nbsp;<code>docker-compose.yml<\/code>&nbsp;\u0e19\u0e35\u0e49\u0e2d\u0e22\u0e39\u0e48 \u0e41\u0e25\u0e49\u0e27\u0e23\u0e31\u0e19\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;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>docker-compose up -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=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #001080\">docker<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">compose<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">up<\/span><span style=\"color: #000000\"> -<\/span><span style=\"color: #001080\">d<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e0a\u0e49 option&nbsp;<code>--build<\/code>&nbsp;\u0e43\u0e19\u0e01\u0e32\u0e23 build image \u0e43\u0e2b\u0e21\u0e48\u0e44\u0e14\u0e49<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;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>docker-compose up -d --build<\/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=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #001080\">docker<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">compose<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">up<\/span><span style=\"color: #000000\"> -<\/span><span style=\"color: #001080\">d<\/span><span style=\"color: #000000\"> --<\/span><span style=\"color: #001080\">build<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u0e41\u0e25\u0e49\u0e27\u0e25\u0e2d\u0e07\u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b\u0e17\u0e35\u0e48&nbsp;<a href=\"http:\/\/localhost:5000\/applogin\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/localhost:5000\/applogin<\/a>&nbsp;\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e14\u0e39\u0e1c\u0e25\u0e25\u0e31\u0e1e\u0e18\u0e4c<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"clean-up-1\">Clean Up<\/h3>\n\n\n\n<p>\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e17\u0e33\u0e01\u0e32\u0e23\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e41\u0e25\u0e49\u0e27 \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e17\u0e33\u0e01\u0e32\u0e23\u0e25\u0e1a container \u0e17\u0e35\u0e48\u0e23\u0e31\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e44\u0e14\u0e49\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-Fira-Code\" style=\"font-size:.875rem;font-family:Code-Pro-Fira-Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#000000;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>docker-compose down<\/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=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki light-plus\" style=\"background-color: #FFFFFF\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #001080\">docker<\/span><span style=\"color: #000000\">-<\/span><span style=\"color: #001080\">compose<\/span><span style=\"color: #000000\"> <\/span><span style=\"color: #001080\">down<\/span><\/span><\/code><\/pre><\/div>\n","protected":false},"featured_media":0,"parent":3444,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"","meta":{"nav_title":"","positive":"","negative":"","footnotes":""},"docs_category":[],"class_list":["post-3453","docs","type-docs","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/3453","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/comments?post=3453"}],"version-history":[{"count":2,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/3453\/revisions"}],"predecessor-version":[{"id":3455,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/3453\/revisions\/3455"}],"up":[{"embeddable":true,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs\/3444"}],"wp:attachment":[{"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/media?parent=3453"}],"wp:term":[{"taxonomy":"docs_category","embeddable":true,"href":"https:\/\/portal-atlasx.cdg.co.th\/home\/wp-json\/wp\/v2\/docs_category?post=3453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}