code-push-server的部署(docker)

来源:互联网 发布:残疾人婚恋软件 编辑:程序博客网 时间:2024/06/06 14:15

说明:

  1. 在我进行docker部署的时候,官方的docker镜像还是半年前的镜像。所以需要重新构建,但是相对来说也比较简单。

  2. 用docker部署项目的好处不用多说

部署前准备

安装docer服务

Ubuntu、Centos安装Docker

安装nodejs服务

nodejs的安装(Centos和Ubuntu)

修改配置文件

参照上一篇源码部署博客

code-push-server的部署(源码)

下载源码和修改配置文件

编写Dockerfile文件

参见lisong团队的dockerhub

请注意COMMON_DATA_DIR和LOCAL_STORAGE_DIR的文件路径,请按照自己的配置进行修改

FROM node:alpineCOPY . /opt/codepush-serverWORKDIR /opt/codepush-serverRUN npm installENV NODE_ENV productionENV PORT 8080ENV CONFIG_FILE /opt/codepush-server/config/config.docker.jsENV COMMON_DATA_DIR /opt/codepush-server/dataENV LOCAL_STORAGE_DIR /opt/codepush-server/storageVOLUME [ "/tmp", "/opt/codepush-server/data", "/opt/codepush-server/storage" ]EXPOSE 8080CMD [ "./bin/www" ]

构建镜像

# 首先将Dockerfile文件移动到code-push-server源码主目录下>>>mv Dockerfile /yourpath/to/code-push-server# 在本地安装模块(我也不知道为什么,不能在Dockerfile里面安装,猜测是因为使用了alpine镜像)>>>cd /yourpath/to/code-push-server && npm install# 进行构建,注意命令最后的点>>>docker build -t code-push-server:v1 .

初始化数据库

开始之前请注意以下几个问题

  • 数据库连接问题

    • 权限问题
    • 数据库是否开放
    • 是否能用root用户连接
  • 命令问题

    • localhost、root、password都需填写对应数据库配置文件的相同信息
    • dbport按mysql配置填写
    • 数据库中不能存在codepush这个数据库
# 构建完成后,进入镜像,注意此处使用的是sh>>>docker run -it code-push-server:v1 /bin/sh# 初始化数据库>>>./bin/db init --dbhost localhost --dbuser root  --dbpassword password --dbport 3306 # 若无报错,复制配置文件。docker部署的配置文件需要改成config/config.docker.js>>>cp config/config.js config/config.docker.js# 开启服务测试>>>./bin/www# 若无报错,则表示成功启动,默认端口为8080

获取docker容器的ip

# 开启新的终端,查看正在运行的容器>>>docker ps -l# 查看输出结果,找到对应容器的CONTAINER ID# 查看容器的ip>>>docker inspect --format '{{ .NetworkSettings.IPAddress }}' CONTAINER ID

然后在浏览器中输入对应ip:8080即可查看

部署成功

# 首先需要将最后一次修改的记录保存>>>docker commit CONTAINER ID code-push-server:latest# 然后使用docker run进行部署,这里的网络通信采取桥接>>>docker run -d --net=host code-push-server:latest ./bin/www

打开浏览器输入本机ip:8080即可访问

若需要更改配置,请在GitHub项目地址进行查看

源码地址

原创粉丝点击