<commit_before>---
type: post
category: tech
tag: docker portainer mongodb
---

# docker 化的 mongodb 使用方案

之前提到过[使用 watchtower 更新本地的 image 的方案](/tech/2020/03/15/Coding.net使用Jenkins实现自动部署CI&CD)，本来我的系统一直使用 sqlite 来做数据库，现在想改成 mongodb。

涉及到 mongodb 就不得不需要考虑怎么本地化，并且如何做备份。数据本地化很好做，只需要 docker 的 volume 即可，编写`docker-compose.yml`，使用`docker-compose up -d`。

```ini
version: '3.7'

volumes:
  mongo:

services:
  mongo:
    image: mongo
    restart: always
    volumes:
      - mongo:/data/db
    ports:
      - 27017:27017
  adminmongo:
    image: mrvautin/adminmongo
    ports:
      - 1234:1234
    environment:
      - HOST=0.0.0.0
    links:
      - mongo:mongo
<commit_msg>📚 Docs: Fix yaml<commit_after>---
type: post
category: tech
tag: docker portainer mongodb
---

# docker 化的 mongodb 使用方案

之前提到过[使用 watchtower 更新本地的 image 的方案](/tech/2020/03/15/Coding.net使用Jenkins实现自动部署CI&CD)，本来我的系统一直使用 sqlite 来做数据库，现在想改成 mongodb。

涉及到 mongodb 就不得不需要考虑怎么本地化，并且如何做备份。数据本地化很好做，只需要 docker 的 volume 即可，编写`docker-compose.yml`，使用`docker-compose up -d`。

```ini
version: '3.7'

volumes:
  mongo:
  strapi:

services:
  mongo:
    image: mongo
    restart: always
    volumes:
      - mongo:/data/db
    ports:
      - 27017:27017
  adminmongo:
    image: mrvautin/adminmongo
    ports:
      - 1234:1234
    environment:
      - HOST=0.0.0.0
      - CONN_NAME=mongo
      - DB_HOST=mongo
      - DB_PORT=27017
      - PASSWORD=$<PASSWORD>
    links:
      - mongo:mongo
  strapi:
      image: <strapi registry>
      environment:
        DATABASE_CLIENT: mongo
        DATABASE_NAME: strapi
        DATABASE_HOST: mongo
        DATABASE_PORT: 27017
      links:
        - mongo:mongo
      volumes:
        - ./app:/srv/app
      ports:
        - '1337:1337'


{'fraction_non_alphanumeric': 0.11059907834101383, 'fraction_numerical': 0.04723502304147465, 'mean_word_length': 2.566735112936345, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2557815', 'n_tokens_mistral': 871, 'n_tokens_neox': 809, 'n_words': 135}