【问题标题】:Docker compose failed to execute mongodb script fileDocker compose 执行 mongodb 脚本文件失败
【发布时间】:2018-02-22 05:25:10
【问题描述】:

我已经关注了 Matt Raible 的帖子 https://developer.okta.com/blog/2017/06/20/develop-microservices-with-jhipster ... 在本地机器上运行 docker-compose 时我遇到了一个错误。

显示给我的错误是:

➜ ~ cd work/jhipster/microservices/docker

➜ docker docker-compose up

构建 store-mongodb-node 第 1/2 步:来自 mongo:3.4.8 ---> 917819fa18fd 第 2/2 步:添加 mongodb/scripts/init_replicaset.js init_replicaset.js 错误:服务'store-mongodb-node'构建失败:添加失败:stat /var/lib/docker/tmp/docker-builder345385260/mongodb/scripts/init_replicaset.js:没有这样的文件或目录

亮点

我用 mongodb 创建了 store 微服务。

我在 store, blog 项目中运行了 ./mvnw -Pprod dockerfile:build。 (因为 docker:build 插件不存在)

JHipster 版本:v4.8.0

Docker 版本:Docker 版本 17.06.2-ce,构建 cec0b72

Docker-compose 版本:docker-compose 版本 1.15.0,构建 e12f3b9

任何人都知道为什么 docker 无法找到 mongodb/scripts/init_replicaset.js

jhipster/microservices/docker/docker-compose.yml

版本:'2' 服务: 博客应用程序: 图片:博客 环境: - SPRING_PROFILES_ACTIVE=产品,招摇 - [....] 存储 mongodb 节点: 建造: 上下文:../store/src/main/docker dockerfile:mongodb/MongoDB.Dockerfile 命令:mongod --replSet rs1 --noprealloc --smallfiles [...]

jhipster/microservices/store/src/main/docker/Dockerfile

FROM openjdk:8-jre-alpine ENV SPRING_OUTPUT_ANSI_ENABLED=总是\ JHIPSTER_SLEEP=0\ JAVA_OPTS="" 添加@project.build.finalName@.war /app.war 暴露 8081 CMD echo "应用程序将在 ${JHIPSTER_SLEEP}s..." && \ 睡眠 ${JHIPSTER_SLEEP} && \ java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /app.war

jhipster/microservices/store/src/main/docker/mongodb/MongoDB.Dockerfile

来自 mongo:3.4.8 添加 mongodb/scripts/init_replicaset.js init_replicaset.js

jhipster/microservices/store/src/main/docker/mongodb/scripts/init_replicaset.js

var status = rs.status();
if(status.errmsg === 'no replset config has been received') {
    rs.initiate();
}
for (var i = 1; i <= param; i++) {
    if(i!==1)
        rs.add(folder+"_store-mongodb-node_" + i + ":27017");
}
cfg = rs.conf();
cfg.members[0].host = folder+"_store-mongodb-node_1:27017";
rs.reconfig(cfg);

还是谢谢你。

【问题讨论】:

  • 向我们展示你的 Dockerfile,docker-compose.yml
  • 你在ubuntu linux上安装docker了吗?
  • @MikeTung 我用 Dockerfile 和 docker-compose.yml 编辑我的问题
  • @harshavmb 是的。
  • 在这个目录位置/var/lib/docker/tmp/docker-builder345385260/mongodb/scripts/检查init_replicaset.js文件是否存在???

标签: mongodb docker-compose jhipster


【解决方案1】:

我找到了解决方案。罪魁祸首是 .dockerignore 文件。您可以在每个应用程序的src/main/docker 文件夹中找到它。

解决方案:从.dockerignore的内容中删除**/*

**/*
!*.jar
!*.war

Jhipster 4.11.1 仍然存在这个问题。我会提交PR提醒官方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-27
    • 1970-01-01
    • 2019-10-27
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    • 2020-06-15
    • 2015-11-14
    相关资源
    最近更新 更多