美文网首页
使用docker部署artipub(含权限认证)

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

作者: maohh | 来源:发表于2021-06-07 15:35 被阅读0次

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

    相关文章

      网友评论

          本文标题:使用docker部署artipub(含权限认证)

          本文链接:https://www.haomeiwen.com/subject/gkbleltx.html