From 7394cf4270f0f74abdac53970b5250f3898f0d15 Mon Sep 17 00:00:00 2001 From: Qquanwei Date: Wed, 7 Feb 2018 06:04:23 +0000 Subject: [PATCH 1/9] feat: add docker support --- build-docker/README.md | 36 ++++++++++++++++++++++++++++++++++ build-docker/api-compose.yml | 21 ++++++++++++++++++++ build-docker/client/Dockerfile | 23 ++++++++++++++++++++++ build-docker/client/nginx.conf | 27 +++++++++++++++++++++++++ build-docker/mongo/Dockerfile | 7 +++++++ build-docker/server/Dockerfile | 10 ++++++++++ 6 files changed, 124 insertions(+) create mode 100644 build-docker/README.md create mode 100644 build-docker/api-compose.yml create mode 100644 build-docker/client/Dockerfile create mode 100644 build-docker/client/nginx.conf create mode 100644 build-docker/mongo/Dockerfile create mode 100644 build-docker/server/Dockerfile diff --git a/build-docker/README.md b/build-docker/README.md new file mode 100644 index 0000000..8f9a2fd --- /dev/null +++ b/build-docker/README.md @@ -0,0 +1,36 @@ +# 生成Docker镜像 + +## 使用docker-compose启动 + +``` +> cd build-docker +> docker-compose -f ./api-compose.yml build +> docker-compose -f ./api-compose.yml up +``` + +## 单独Build启动 + +### client + +``` +> cd build-docker/client +> docker build -t api-client . +> docker run --rm api-client +``` + +### server + +``` +# 启动mongo +> cd build-docker/mongo +> docker build -t api-mongo . +> docker create --name api-mongo-container api-mongo +> docker start api-mongo-container + +> cd .. + +# 启动server +> cd build-docker/server +> docker build -t api-server . +> docker run --rm --net="container:api-mongo-container" -p 8080:80 api-server +``` diff --git a/build-docker/api-compose.yml b/build-docker/api-compose.yml new file mode 100644 index 0000000..9fbe61f --- /dev/null +++ b/build-docker/api-compose.yml @@ -0,0 +1,21 @@ +version: "3" + +services: + mongo: + build: ./mongo + ports: + - 7001:7001 + + server: + build: ./server + network_mode: "service:mongo" + depends_on: + - mongo + + client: + build: ./client + entrypoint: nginx -g "daemon off;" + ports: + - "8888:80" + depends_on: + - server diff --git a/build-docker/client/Dockerfile b/build-docker/client/Dockerfile new file mode 100644 index 0000000..eb9159b --- /dev/null +++ b/build-docker/client/Dockerfile @@ -0,0 +1,23 @@ +FROM node:latest + +## Install +RUN apt update && \ + apt install -y git nginx + +## Clone Source +RUN git clone --depth 1 https://github.com/DXY-F2E/api-mocker.git /api-mocker + +RUN cd /api-mocker/client && \ + npm install && \ + npm run build && \ + mv dist /www && \ + rm -rf /client + +COPY nginx.conf /etc/nginx/nginx.conf + +WORKDIR /www + +## Expost ports +EXPOSE 80 + +CMD "nginx" "-g 'daemon off;'" diff --git a/build-docker/client/nginx.conf b/build-docker/client/nginx.conf new file mode 100644 index 0000000..60a5baf --- /dev/null +++ b/build-docker/client/nginx.conf @@ -0,0 +1,27 @@ +worker_processes 4; + +events { worker_connections 1024; } + +http { + server { + listen 80; + + location /mock/ { + alias /www/; + gzip_static on; + expires max; + } + + location / { + alias /www/; + } + + location * { + proxy_pass http://127.0.0.1:7001; + proxy_http_version 1.1; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + } + } +} diff --git a/build-docker/mongo/Dockerfile b/build-docker/mongo/Dockerfile new file mode 100644 index 0000000..74ac46d --- /dev/null +++ b/build-docker/mongo/Dockerfile @@ -0,0 +1,7 @@ +FROM mongo:latest + +CMD mkdir -f /data/db + +EXPOSE 27017 + +CMD "mongod" diff --git a/build-docker/server/Dockerfile b/build-docker/server/Dockerfile new file mode 100644 index 0000000..8c52609 --- /dev/null +++ b/build-docker/server/Dockerfile @@ -0,0 +1,10 @@ +from node:latest + +RUN git clone --depth 1 https://github.com/DXY-F2E/api-mocker.git /api-mocker + +RUN cd /api-mocker/server && \ + npm install + +WORKDIR /api-mocker/server + +CMD "npm" "start" From ca0f2294cb821556fb21551373dd86ea9994e60e Mon Sep 17 00:00:00 2001 From: Qquanwei Date: Wed, 7 Feb 2018 06:05:54 +0000 Subject: [PATCH 2/9] add docs --- build-docker/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build-docker/README.md b/build-docker/README.md index 8f9a2fd..abbf1c1 100644 --- a/build-docker/README.md +++ b/build-docker/README.md @@ -1,11 +1,14 @@ # 生成Docker镜像 +使用Docker运行有下面两种方式, 推荐使用第一种 + ## 使用docker-compose启动 ``` > cd build-docker > docker-compose -f ./api-compose.yml build > docker-compose -f ./api-compose.yml up +# client: 8888 # server: 7001 ``` ## 单独Build启动 From a5f04e16ee72f83a210723eabce80e78dd3623d4 Mon Sep 17 00:00:00 2001 From: Qquanwei Date: Wed, 7 Feb 2018 06:51:38 +0000 Subject: [PATCH 3/9] =?UTF-8?q?refactor:=20=E6=9E=84=E5=BB=BA=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0docker=E9=95=9C=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build-docker/README.md | 16 ++++++++-------- build-docker/api-compose.yml | 12 +++++++++--- build-docker/client/Dockerfile | 7 ++++--- client/build/docker-build.js | 35 ++++++++++++++++++++++++++++++++++ package.json | 21 ++++++++++++++++++++ 5 files changed, 77 insertions(+), 14 deletions(-) create mode 100644 client/build/docker-build.js create mode 100644 package.json diff --git a/build-docker/README.md b/build-docker/README.md index abbf1c1..fd84cdf 100644 --- a/build-docker/README.md +++ b/build-docker/README.md @@ -5,9 +5,9 @@ ## 使用docker-compose启动 ``` -> cd build-docker -> docker-compose -f ./api-compose.yml build -> docker-compose -f ./api-compose.yml up +> cd ../ +> npm run docker:build +> npm run docker:start # client: 8888 # server: 7001 ``` @@ -16,7 +16,7 @@ ### client ``` -> cd build-docker/client +> cd ./client > docker build -t api-client . > docker run --rm api-client ``` @@ -25,15 +25,15 @@ ``` # 启动mongo -> cd build-docker/mongo +> cd ./mongo > docker build -t api-mongo . > docker create --name api-mongo-container api-mongo -> docker start api-mongo-container +> docker start -p 8080:80 api-mongo-container > cd .. # 启动server -> cd build-docker/server +> cd ./server > docker build -t api-server . -> docker run --rm --net="container:api-mongo-container" -p 8080:80 api-server +> docker run --rm --net="container:api-mongo-container" api-server ``` diff --git a/build-docker/api-compose.yml b/build-docker/api-compose.yml index 9fbe61f..0f4c1f9 100644 --- a/build-docker/api-compose.yml +++ b/build-docker/api-compose.yml @@ -2,18 +2,24 @@ version: "3" services: mongo: - build: ./mongo + build: + context: '../' + dockerfile: 'build-docker/mongo/Dockerfile' ports: - 7001:7001 server: - build: ./server + build: + context: '../' + dockerfile: 'build-docker/server/Dockerfile' network_mode: "service:mongo" depends_on: - mongo client: - build: ./client + build: + context: '../' + dockerfile: build-docker/client/Dockerfile entrypoint: nginx -g "daemon off;" ports: - "8888:80" diff --git a/build-docker/client/Dockerfile b/build-docker/client/Dockerfile index eb9159b..98ea334 100644 --- a/build-docker/client/Dockerfile +++ b/build-docker/client/Dockerfile @@ -5,15 +5,16 @@ RUN apt update && \ apt install -y git nginx ## Clone Source -RUN git clone --depth 1 https://github.com/DXY-F2E/api-mocker.git /api-mocker +COPY ./client /client +# RUN git clone --depth 1 https://github.com/DXY-F2E/api-mocker.git /api-mocker -RUN cd /api-mocker/client && \ +RUN cd /client && \ npm install && \ npm run build && \ mv dist /www && \ rm -rf /client -COPY nginx.conf /etc/nginx/nginx.conf +COPY ./build-docker/client/nginx.conf /etc/nginx/nginx.conf WORKDIR /www diff --git a/client/build/docker-build.js b/client/build/docker-build.js new file mode 100644 index 0000000..7692bad --- /dev/null +++ b/client/build/docker-build.js @@ -0,0 +1,35 @@ +('./check-versions')() + +process.env.NODE_ENV = 'production' + +var ora = require('ora') +var rm = require('rimraf') +var path = require('path') +var chalk = require('chalk') +var webpack = require('webpack') +var config = require('../config') +var webpackConfig = require('./webpack.prod.conf') + +var spinner = ora('building for production...') +spinner.start() + +rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { + if (err) throw err + webpack(webpackConfig, function (err, stats) { + spinner.stop() + if (err) throw err + process.stdout.write(stats.toString({ + colors: true, + modules: false, + children: false, + chunks: false, + chunkModules: false + }) + '\n\n') + + console.log(chalk.cyan(' Build complete.\n')) + console.log(chalk.yellow( + ' Tip: built files are meant to be served over an HTTP server.\n' + + ' Opening index.html over file:// won\'t work.\n' + )) + }) +}) diff --git a/package.json b/package.json new file mode 100644 index 0000000..a813474 --- /dev/null +++ b/package.json @@ -0,0 +1,21 @@ +{ + "name": "api-mocker", + "version": "1.0.0", + "description": "> API Mocker,不仅仅是Mocker,它致力于解决前后端开发协作过程中出现的各类问题,提高开发效率,对接口做统一管理,同时也能为后续的迭代维护提供更便捷的方式。", + "main": "index.js", + "directories": { + "doc": "docs" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "docker:build": "docker-compose -f build-docker/api-compose.yml build", + "docker:start": "docker-compose -f build-docker/api-compose.yml up" + }, + "repository": { + "type": "git", + "url": "git@github.com:DXY-F2E/api-mocker.git" + }, + "keywords": [], + "author": "", + "license": "ISC" +} From 5fa3a96fa9e81e878134115eda101abe57477a10 Mon Sep 17 00:00:00 2001 From: Qquanwei Date: Wed, 7 Feb 2018 08:18:32 +0000 Subject: [PATCH 4/9] fix: nginx proxy --- build-docker/api-compose.yml | 27 ------------------ build-docker/client.dockerfile | 12 ++++++++ build-docker/client/Dockerfile | 24 ---------------- build-docker/client/nginx.conf | 27 ------------------ build-docker/compose.yml | 28 +++++++++++++++++++ .../{mongo/Dockerfile => mongo.dockerfile} | 0 build-docker/nginx.conf | 25 +++++++++++++++++ build-docker/server.dockerfile | 10 +++++++ build-docker/server/Dockerfile | 10 ------- package.json | 4 +-- 10 files changed, 77 insertions(+), 90 deletions(-) delete mode 100644 build-docker/api-compose.yml create mode 100644 build-docker/client.dockerfile delete mode 100644 build-docker/client/Dockerfile delete mode 100644 build-docker/client/nginx.conf create mode 100644 build-docker/compose.yml rename build-docker/{mongo/Dockerfile => mongo.dockerfile} (100%) create mode 100644 build-docker/nginx.conf create mode 100644 build-docker/server.dockerfile delete mode 100644 build-docker/server/Dockerfile diff --git a/build-docker/api-compose.yml b/build-docker/api-compose.yml deleted file mode 100644 index 0f4c1f9..0000000 --- a/build-docker/api-compose.yml +++ /dev/null @@ -1,27 +0,0 @@ -version: "3" - -services: - mongo: - build: - context: '../' - dockerfile: 'build-docker/mongo/Dockerfile' - ports: - - 7001:7001 - - server: - build: - context: '../' - dockerfile: 'build-docker/server/Dockerfile' - network_mode: "service:mongo" - depends_on: - - mongo - - client: - build: - context: '../' - dockerfile: build-docker/client/Dockerfile - entrypoint: nginx -g "daemon off;" - ports: - - "8888:80" - depends_on: - - server diff --git a/build-docker/client.dockerfile b/build-docker/client.dockerfile new file mode 100644 index 0000000..193fa95 --- /dev/null +++ b/build-docker/client.dockerfile @@ -0,0 +1,12 @@ +FROM nginx:alpine + +## Clone Source +COPY ./client/dist /www +COPY ./build-docker/nginx.conf /etc/nginx/nginx.conf + +WORKDIR /www + +## Expost ports +EXPOSE 80 + +CMD "nginx" "-g 'daemon off;'" diff --git a/build-docker/client/Dockerfile b/build-docker/client/Dockerfile deleted file mode 100644 index 98ea334..0000000 --- a/build-docker/client/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM node:latest - -## Install -RUN apt update && \ - apt install -y git nginx - -## Clone Source -COPY ./client /client -# RUN git clone --depth 1 https://github.com/DXY-F2E/api-mocker.git /api-mocker - -RUN cd /client && \ - npm install && \ - npm run build && \ - mv dist /www && \ - rm -rf /client - -COPY ./build-docker/client/nginx.conf /etc/nginx/nginx.conf - -WORKDIR /www - -## Expost ports -EXPOSE 80 - -CMD "nginx" "-g 'daemon off;'" diff --git a/build-docker/client/nginx.conf b/build-docker/client/nginx.conf deleted file mode 100644 index 60a5baf..0000000 --- a/build-docker/client/nginx.conf +++ /dev/null @@ -1,27 +0,0 @@ -worker_processes 4; - -events { worker_connections 1024; } - -http { - server { - listen 80; - - location /mock/ { - alias /www/; - gzip_static on; - expires max; - } - - location / { - alias /www/; - } - - location * { - proxy_pass http://127.0.0.1:7001; - proxy_http_version 1.1; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - } - } -} diff --git a/build-docker/compose.yml b/build-docker/compose.yml new file mode 100644 index 0000000..c775dc1 --- /dev/null +++ b/build-docker/compose.yml @@ -0,0 +1,28 @@ +version: "3" + +services: + mongod: + build: + context: '../' + dockerfile: 'build-docker/mongo.dockerfile' + ports: + - "7001:7001" + entrypoint: mongod --bind_ip 127.0.0.1 + + server: + build: + context: '../' + dockerfile: 'build-docker/server.dockerfile' + network_mode: "service:mongod" + depends_on: + - mongod + + client: + build: + context: '../' + dockerfile: build-docker/client.dockerfile + entrypoint: nginx -g "daemon off;" + ports: + - "8888:80" + depends_on: + - server diff --git a/build-docker/mongo/Dockerfile b/build-docker/mongo.dockerfile similarity index 100% rename from build-docker/mongo/Dockerfile rename to build-docker/mongo.dockerfile diff --git a/build-docker/nginx.conf b/build-docker/nginx.conf new file mode 100644 index 0000000..2f487f3 --- /dev/null +++ b/build-docker/nginx.conf @@ -0,0 +1,25 @@ +worker_processes 4; + +events { worker_connections 1024; } + +http { + server { + listen 80; + + location /mock/ { + alias /www/; + gzip_static on; + expires max; + } + + location /mock-api/ { + proxy_pass http://192.168.99.100:7001/; + } + + location / { + alias /www/; + } + + + } +} diff --git a/build-docker/server.dockerfile b/build-docker/server.dockerfile new file mode 100644 index 0000000..f9c1201 --- /dev/null +++ b/build-docker/server.dockerfile @@ -0,0 +1,10 @@ +from node:alpine + +COPY ./server /server + +RUN cd /server && \ + npm install + +WORKDIR /server + +CMD "npm" "start" diff --git a/build-docker/server/Dockerfile b/build-docker/server/Dockerfile deleted file mode 100644 index 8c52609..0000000 --- a/build-docker/server/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -from node:latest - -RUN git clone --depth 1 https://github.com/DXY-F2E/api-mocker.git /api-mocker - -RUN cd /api-mocker/server && \ - npm install - -WORKDIR /api-mocker/server - -CMD "npm" "start" diff --git a/package.json b/package.json index a813474..339d572 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,8 @@ }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "docker:build": "docker-compose -f build-docker/api-compose.yml build", - "docker:start": "docker-compose -f build-docker/api-compose.yml up" + "docker:build": "docker-compose -f build-docker/compose.yml build", + "docker:start": "docker-compose -f build-docker/compose.yml up" }, "repository": { "type": "git", From 9f5a1edb20943a24c7a9987d513784f12d5bb9d1 Mon Sep 17 00:00:00 2001 From: Qquanwei Date: Wed, 7 Feb 2018 08:20:38 +0000 Subject: [PATCH 5/9] chore add dockerignore add docker prebuild --- .dockerignore | 1 + package.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..40b878d --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +node_modules/ \ No newline at end of file diff --git a/package.json b/package.json index 339d572..2a7f561 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "docker:build": "docker-compose -f build-docker/compose.yml build", + "docker:build": "cd client && npm build && cd .. && docker-compose -f build-docker/compose.yml build", "docker:start": "docker-compose -f build-docker/compose.yml up" }, "repository": { From cee82b549d8f3f2e9d1459cf310630fa84189665 Mon Sep 17 00:00:00 2001 From: Qquanwei Date: Wed, 7 Feb 2018 08:33:55 +0000 Subject: [PATCH 6/9] delete: unused file --- client/build/docker-build.js | 35 ----------------------------------- 1 file changed, 35 deletions(-) delete mode 100644 client/build/docker-build.js diff --git a/client/build/docker-build.js b/client/build/docker-build.js deleted file mode 100644 index 7692bad..0000000 --- a/client/build/docker-build.js +++ /dev/null @@ -1,35 +0,0 @@ -('./check-versions')() - -process.env.NODE_ENV = 'production' - -var ora = require('ora') -var rm = require('rimraf') -var path = require('path') -var chalk = require('chalk') -var webpack = require('webpack') -var config = require('../config') -var webpackConfig = require('./webpack.prod.conf') - -var spinner = ora('building for production...') -spinner.start() - -rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { - if (err) throw err - webpack(webpackConfig, function (err, stats) { - spinner.stop() - if (err) throw err - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, - chunks: false, - chunkModules: false - }) + '\n\n') - - console.log(chalk.cyan(' Build complete.\n')) - console.log(chalk.yellow( - ' Tip: built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - )) - }) -}) From 6a899dcc661e2fa54a380ba95de4d10c48ef3ee9 Mon Sep 17 00:00:00 2001 From: --local <--local> Date: Thu, 8 Feb 2018 15:49:55 +0800 Subject: [PATCH 7/9] fix: docker:build --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2a7f561..815f21a 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "docker:build": "cd client && npm build && cd .. && docker-compose -f build-docker/compose.yml build", + "docker:build": "cd client && npm run build && cd .. && docker-compose -f build-docker/compose.yml build", "docker:start": "docker-compose -f build-docker/compose.yml up" }, "repository": { From 5186b76335e59f6eaf45fab08a1310e5de0f84e1 Mon Sep 17 00:00:00 2001 From: --local <--local> Date: Thu, 8 Feb 2018 15:51:14 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BC=A9=E8=BF=9B?= =?UTF-8?q?=E4=B8=BA2=E7=A9=BA=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build-docker/server.dockerfile | 2 +- package.json | 38 +++++++++++++++++----------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/build-docker/server.dockerfile b/build-docker/server.dockerfile index f9c1201..ed81abf 100644 --- a/build-docker/server.dockerfile +++ b/build-docker/server.dockerfile @@ -3,7 +3,7 @@ from node:alpine COPY ./server /server RUN cd /server && \ - npm install + npm install WORKDIR /server diff --git a/package.json b/package.json index 815f21a..02b7218 100644 --- a/package.json +++ b/package.json @@ -1,21 +1,21 @@ { - "name": "api-mocker", - "version": "1.0.0", - "description": "> API Mocker,不仅仅是Mocker,它致力于解决前后端开发协作过程中出现的各类问题,提高开发效率,对接口做统一管理,同时也能为后续的迭代维护提供更便捷的方式。", - "main": "index.js", - "directories": { - "doc": "docs" - }, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "docker:build": "cd client && npm run build && cd .. && docker-compose -f build-docker/compose.yml build", - "docker:start": "docker-compose -f build-docker/compose.yml up" - }, - "repository": { - "type": "git", - "url": "git@github.com:DXY-F2E/api-mocker.git" - }, - "keywords": [], - "author": "", - "license": "ISC" + "name": "api-mocker", + "version": "1.0.0", + "description": "> API Mocker,不仅仅是Mocker,它致力于解决前后端开发协作过程中出现的各类问题,提高开发效率,对接口做统一管理,同时也能为后续的迭代维护提供更便捷的方式。", + "main": "index.js", + "directories": { + "doc": "docs" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "docker:build": "cd client && npm run build && cd .. && docker-compose -f build-docker/compose.yml build", + "docker:start": "docker-compose -f build-docker/compose.yml up" + }, + "repository": { + "type": "git", + "url": "git@github.com:DXY-F2E/api-mocker.git" + }, + "keywords": [], + "author": "", + "license": "ISC" } From a0d9766688c5c69a58b3377906d2e812b2b80f8b Mon Sep 17 00:00:00 2001 From: Qquanwei Date: Thu, 8 Feb 2018 08:36:03 +0000 Subject: [PATCH 9/9] docs: fix --- build-docker/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/build-docker/README.md b/build-docker/README.md index fd84cdf..d483960 100644 --- a/build-docker/README.md +++ b/build-docker/README.md @@ -16,8 +16,8 @@ ### client ``` -> cd ./client -> docker build -t api-client . +> cd .. +> docker build -t api-client -f build-docker/client.dockerfile . > docker run --rm api-client ``` @@ -25,15 +25,15 @@ ``` # 启动mongo -> cd ./mongo -> docker build -t api-mongo . +> cd .. +> docker build -t api-mongo -f build-docker/mongo.dockerfile . > docker create --name api-mongo-container api-mongo > docker start -p 8080:80 api-mongo-container > cd .. # 启动server -> cd ./server -> docker build -t api-server . +> cd .. +> docker build -t api-server -f build-docker/server.dockerfile . > docker run --rm --net="container:api-mongo-container" api-server ```