3

在OrangePi上使用Docker-Compose搭建蚂蚁笔记服务器

 3 years ago
source link: https://www.lujun9972.win/blog/2018/12/22/%E5%9C%A8orangepi%E4%B8%8A%E4%BD%BF%E7%94%A8docker-compose%E6%90%AD%E5%BB%BA%E8%9A%82%E8%9A%81%E7%AC%94%E8%AE%B0%E6%9C%8D%E5%8A%A1%E5%99%A8/index.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

在OrangePi上使用Docker-Compose搭建蚂蚁笔记服务器

蚂蚁笔记 是一款很不错的云笔记应用,基本上可以用来代替Evernote. 最棒的是它可以很方便的自建服务器!

蚂蚁笔记服务端基于Mongo数据库,我们可以直接基于Mongo镜像来搭建自己的服务镜像,但是基于一个容器只跑一个进程的原则,推荐将Mongo数据库和蚂蚁笔记服务分开来。

  1. 创建docker-compose.yml,填入下面内容

    version: "0.1"
    
    services:
      mongo:
        image: mongo
        volumes:
          - .data:/data
    
      leanote:
        build: leanote
        ports:
          - 9000:9000
        links:
          - mongo
    

    这里,我们直接使用docker官方提供的 mongo 镜像来提供mongo数据库服务。

    leanote目录则存放构建蚂蚁笔记服务端的构建内容

  2. 在leanote目录下创建Dockerfile,填入下面内容

    FROM mongo
    WORKDIR /root/
    ADD run.sh /root/
    ADD https://static.axboy.cn/leanote/leanote-linux-arm-v2.6.1.bin.tar.gz  /root/leanote.tar.gz
    RUN tar -xzf /root/leanote.tar.gz -C /root/ && \
          rm -f /root/leanote.tar.gz && \
          chmod a+x /root/run.sh && \
          chmod a+x /root/leanote/bin/run.sh
    RUN sed -i '/db.host/ s/127.0.0.1/mongo/' /root/leanote/conf/app.conf
    EXPOSE 9000
    ENTRYPOINT
    CMD /root/run.sh
    

    这里要说明的是:

    1. 虽然我们将mongo数据库和蚂蚁笔记服务端分开,但由于导入蚂蚁笔记初始脚本时需要用到mongorestore命令,因此这里依然基于mongo构建我们的镜像,只不过在后面通过 ENTRYPOINT 来禁止mongo服务的启动
    2. 蚂蚁笔记默认的配置的mongo主机是 127.0.0.1,这里需要修改为 mongo,也就是 docker-compose.yml 中定义的mongo数据库的服务名
    3. 蚂蚁笔记默认通过 9000 端口对外提供服务,因此这里通过 EXPOSE 90009000 端口暴露出去
  3. 在leanote目录下创建run.sh,填入下面内容

    #!/usr/bin/env bash
    
    # 倒入初始数据
    if ! echo "show dbs" |mongo --host mongo|grep leanote
    then
      mongorestore -h mongo -d leanote --dir /root/leanote/mongodb_backup/leanote_install_data/
    fi
    bash /root/leanote/bin/run.sh
    

    这个 run.sh 很简单,就是先查看 mongo 主机上是否已经有了 leanote 数据库。 若没有这个数据库,则从 /root/leanote/mongodb_backup/leanote_install_data/ 中导入初始化数据。 然后启动蚂蚁笔记的服务。

    这里需要注意的是:

    1. mongomongorestore 命令后指定的主机名 mongo 就是 docker-compose.yml 中定义的mongo数据库的服务名
  4. 运行 docker-compose up -d 启动服务
  5. 访问 http://orangepi:9000 就能看到蚂蚁笔记服务的web界面了 leanote_web.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK