部署服务器系列二:Linux环境结合Docker搭建node

269 阅读1分钟

1、安装git、拉取

yum update
yum install git

2、配置git

 vim ~/.gitconfig

3、为GitHub添加SSH Keys

(1)创建SSH key

$ ssh-keygen -t rsa -C "youremail@163.com"

(2)Copy SSH Key 然后用vim打开该文件,id_rsa.pub文件内的内容,粘帖到github帐号管理的添加SSH key界面中。

vim ~/.ssh/id_rsa.pub

(3)添加到GitHub

登录github-> Accounting settings图标-> SSH key-> Add SSH key-> 填写SSH key的名称

4、拉取代码

git clone git@github.com:1209823208/my-koa2-demo.git

5、在当前项目下( my-app-server)创建Dockerfile

FROM node
#创建当前运行环境
WORKDIR /var/my-app-service/
#安装依赖
RUN apt-get update && apt-get install -y curl build-essential mysql-client && \ 
    curl -sL https://deb.nodesource.com/setup_9.x | bash - && \
    apt-get install -y nodejs && rm -rf /var/lib/apt/lists/*
#拷贝当前代码(含有package.json目录)到/var/my-app-service/
COPY app ./
# COPY run.sh .
# RUN chmod +x ./run.sh
RUN npm install
# RUN echo $(find ./  -name server)

# RUN echo $(find server -name index.js)
#映射出去端口
EXPOSE 3001
#执行命令-启动项目(npm run start)
ENTRYPOINT ["npm", "run", "start"]
# ENTRYPOINT ["/var/my-app-service/run.sh"]

6、在Dockerfile所在的目录下构建容器 mysql-react:数据库容器 my-koa-service:node服务容器

docker run -p 3001:3001 -d  --name=my-koa-service_3.0 --link mysql-react my-koa-service

遇到的错误:

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

alter user 'root'@'%' identified with mysql_native_password by 'root123456';

use koa_demo;

docker不能访问本地启动的mysql,可以访问 测试数据库能否连接

docker exec -it my-koa-service_4.0 bash
mysql -hmysql-react -P3306 -uroot -p

阿里云服务器发布项目后无法访问:

项目已经成功启动,通过ip+端口号的方式无法访问,此时需要添加云服务器安全组规则
参考链接:https://blog.csdn.net/runner1920/article/details/79035651

node启动后端服务需要-d挂载、前端不用,因为有nginx