使用docker部署artipub(2021/06/07-含权限认证)
1. 安装docker及docker-compose
## 安装docker
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io
## 安装docker-compose
yum install epel-release
yum install -y python-pip
## pip install --upgrade pip 不能用这个,会升级到21以上报错
pip install --upgrade "pip < 21.0"
pip install docker-compose
docker-compose version
## 开机启动
[root@localhost ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@localhost ~]# systemctl start docker
## 暴露2375 端口供服务推送
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \
添加这一句 -H tcp://0.0.0.0:2375
## 重新加载配置
systemctl daemon-reload // 1,加载docker守护线程
systemctl restart docker // 2,重启docker
2. 编写配置文件
编写docker-compose.yml
文件
version: '3.3'
services:
app:
image: "tikazyq/artipub:1.2.0" ## 这里要使用1.2.0版本
environment:
MONGO_HOST: "mongo"
## 后端API地址,如果安装地址不在本机,请修改为服务器IP地址+端口号(默认为3000)
## 建议一步到位直接使用 http://xxxx.web.com/api
ARTIPUB_API_ADDRESS: "http://localhost:3000"
ports:
- "8000:8000" # frontend
- "3000:3000" # backend 由于3000 和前端的端口有一定的冲突,对外暴露7999端口。
depends_on:
- mongo
mongo:
image: mongo:latest
restart: always
ports:
- "27017:27017"
注意点:
ARTIPUB_API_ADDRESS 最好加上http:// 或者https:// 否则可能会出现跨域问题,从而导致查询不出来平台列表数据
3. 部署项目
docker-compose up -d
4.权限机制
由于artipub没有权限体系,所以需要自己在nginx上新增权限认证功能【在有nginx的基础上】
安装htpasswd
yum install -y httpd-tools
生成密码
htpasswd -c /etc/nginx/conf.d/.htpasswd zhangsan
配置Nginx,最终配置如下
server {
listen 80;
server_name demo.demo.com;
## 重点
auth_basic "basic auth";
## 重点上面配置的密码路径PS(这里注意授权)
auth_basic_user_file /password/.htpasswd;
location / {
proxy_pass http://127.0.0.1:8000/;
proxy_set_header Host $http_host;
}
location /api/ {
proxy_pass http://127.0.0.1:3000/;
proxy_set_header Host $http_host;
}
}
5. 运行项目
成功后,浏览器登录http://demo.demo.com/
你会看到如下界面:
根据要求来进行设置相关操作
在谷歌浏览器的右上角会有如下按钮(把手处设置为http://demo.demo.com/api)
授权6. 登录平台发布文章
image-20200904010733290参考资料
- artipub官方仓库:https://github.com/crawlab-team/artipub
- docker官网:http://docker.com/
- Docker-compose安装错误解决方案: https://www.cnblogs.com/felixqiang/p/11946644.html
网友评论