1 mongodb jhipster docker-compose
我已经关注了Matt Raible的帖子 https://developer.okta.com/blog/2017/06/20/develop-microservices-with-jhipster ...我在本地机器上运行docker-compose时遇到错误.
向我显示的错误是:
➜~cdwork/jhipster/microservices/docker
➜泊坞木码头组成
Building store-mongodb-node Step 1/2 : FROM mongo:3.4.8 ---> 917819fa18fd Step 2/2 : ADD mongodb/scripts/init_replicaset.js init_replicaset.js ERROR: Service 'store-mongodb-node' failed to build: ADD failed: stat /var/lib/docker/tmp/docker-builder345385260/mongodb/scripts/init_replicaset.js: no such file or directory
我用mongodb 创建了商店微服务.
我跑了./mvnw -Pprod dockerfile:build in store,blog project.(因为docker:build plugin不存在)
JHipster版本:v4.8.0
Docker版本:Docker版本17.06.2-ce,构建cec0b72
Docker-compose版本:docker-compose版本1.15.0,build e12f3b9
任何人都知道为什么docker无法找到mongodb/scripts/init_replicaset.js?
version: '2'
services:
blog-app:
image: blog
environment:
- SPRING_PROFILES_ACTIVE=prod,swagger
- [....]
store-mongodb-node:
build:
context: ../store/src/main/docker
dockerfile: mongodb/MongoDB.Dockerfile
command: mongod --replSet rs1 --noprealloc --smallfiles
[...]
FROM openjdk:8-jre-alpine
ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \
JHIPSTER_SLEEP=0 \
JAVA_OPTS=""
ADD @project.build.finalName@.war /app.war
EXPOSE 8081
CMD echo "The application will start in ${JHIPSTER_SLEEP}s..." && \
sleep ${JHIPSTER_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /app.war
FROM mongo:3.4.8
ADD mongodb/scripts/init_replicaset.js 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);
Run Code Online (Sandbox Code Playgroud)
还是非常感谢.
我找到了解决方案.罪魁祸首是.dockerignore文件.您可以在src/main/docker每个应用程序的文件夹中找到它.
解决方案:**/*从内容中删除.dockerignore
**/*
!*.jar
!*.war
Run Code Online (Sandbox Code Playgroud)
Jhipster 4.11.1仍有此问题.我将提交PR以提醒其官员.