使用docker部署artipub(含权限认证)

使用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

参考资料

  1. artipub官方仓库:https://github.com/crawlab-team/artipub
  2. docker官网:http://docker.com/
  3. Docker-compose安装错误解决方案: https://www.cnblogs.com/felixqiang/p/11946644.html
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容