Day27 [实作] 一对一视讯通话(7): 使用 Docker 封装

首先我们需要有 Docker 环境,如果还没有可以参考 Docker 安装

制作 Dockerfile

制作 dockerfile 我们需要先了解我们的程序是如何运行起来的。

  1. 要有 node.js 环境
  2. 有一个 package.json 的文件,用於描述我们的应用程序的依赖
  3. 执行 npm install 就会去把 package.json 中的依赖安装起来
  4. 执行 node server.js 就能够运行成功

了解这些步骤後我们就开始建立 Dockerfile

在资料夹内部建立 Dockerfile 文件,并编辑

❯ touch Dockerfile

我们的 docker image 的基础 使用 node.js 环境,版本使用 LTS 也就是 14 版

FROM node:14

WORKDIR 指令可以指定工作目录,可以理解为 shell 的 cd 指令

WORKDIR /usr/src/app

现在我们的 docker 容器中已经有了 node 及 npm 的环境,接下来我们要安装我们应用程序所需要的依赖

COPY package*.json ./

RUN npm install

使用 COPY 来将本地文件复制到容器中 可以理解为 shell 的 cp

COPY . .

EXPOSE 通知 Docker 容器在运行时监听指定的网络端口。 也可以指定侦听TCP还是UDP,默认值为TCP

EXPOSE 8088

CMD为执行中的容器提供初始指令。 Dockerfile 中只能有一个 CMD指令,这里我们使用 node server.js 来启动我们的服务器

CMD [ "node", "server.js" ]

完整 Dockerfile 如下:

FROM node:14

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 8088
CMD [ "node", "server.js" ]

添加 .dockerignore 文件

❯  touch .dockerignore

在 .dockerignore 中加入以下内容,我们不需要把这些东西也包到容器中

node_modules
npm-debug.log

编译 Docker image

完成 Dockerflie 後我们就可以来编译映像档,执行

❯ docker build . -t 1-on-1-webrtc

使用 docker run 来执行我们的程序

❯ docker run -d --name webrtc  -p 8088:8088 1-on-1-webrtc

打开浏览器 https://localhost:8088/ 测试看看

从 Github 抓下来测试

完整内容可以参考 Github

❯ git clone https://github.com/tc3oliver/1-on-1-webrtc.git
❯ cd 1-on-1-webrtc
❯ git checkout docker
❯ docker build . -t 1-on-1-webrtc
❯ docker run -d --name webrtc  -p 8088:8088 1-on-1-webrtc

<<:  信件

>>:  Day 27 RSpec 的 Mock & Stub

[Day 14] Delete 删除资料

利用Day 13的collection public function getData(){ ret...

【Day8】EditProfileFragment X Storage上传照片

在昨天的Profile页面中,我们可以看到有照片的讯息,那我们今天主要要来做的就是~ 把手机相簿里...

学习javascript前...HTML2

有些功能性的标签不需要内文,写法如下: < b >粗体字< /b > b 标...

Python - Python Selenium 套件使用参考笔记

Python - Python Selenium 套件使用参考笔记 参考资料 Selenium-Py...

Day 0x1 - 动机、目标、目录 (消费支付API)

0x1 动机 只是很单纯的有兴趣,练习看API文件, 试着在最短时间规划并建立出一个目标, 就是一个...