Docker docker-entrypoint-initdb.d/ 脚本与 Mongodb 不工作

时间:2020-12-27 23:59:35

标签: mongodb docker

我一直在努力通过 /docker-entrypoint-initdb.d 在 Docker 的 Mongo 容器中配置脚本的执行。

我曾尝试仔细遵循 documentation,但没有成功。

项目结构

enter image description here

docker-compose.yml

version: '3.3'
services:
  mongodb:
    image: mongo:latest
    container_name: mongo_db
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: rootpass
      MONGO_INITDB_DATABASE: database
    volumes:
      - mongodbdata:/data/db
      - ./init.d/:/docker-entrypoint-initdb.d/
    restart: always
volumes:
  mongodbdata:
    driver: local

init-mongo.sh

#!/bin/bash
echo 'hello script'

在日志中没有执行命令 echo 'hello script'。

我该怎么办?有什么我遗漏的吗?

1 个答案:

答案 0 :(得分:1)

Docker 仅在创建映像时执行 docker-entrypoint-initdb.d 内的脚本,因为这主要用于播种数据。如果它不是一个新鲜的图像,而您只是想用您的脚本再次生成它,那么这就是导致它的原因。

您可以尝试做的是在终端中输入:

docker stop $(docker ps -aq) && docker rm $(docker ps -aq) && docker rmi mongo:latest -f && docker-compose up

然后检查日志:P