0

我在Window下使用来自docker的 Jhipster 。

我按照tuto进行操作,但无法同步 docker image 中的更改

我想从 jhipster 获得自己的形象。我创建一个新的

general03@L3F2GPK1F9W0 MINGW64 ~/jhipster/app/src/main/docker
$ docker build -t general03-jhipster .
Sending build context to Docker daemon 5.632 kB
Step 1 : FROM jhipster/jhipster
 ---> 0ae13f5d5a79
Step 2 : ADD . /app
 ---> Using cache
 ---> 1a8aaf63bf7e
Step 3 : ENV JHIPSTER_SLEEP 0
 ---> Using cache
 ---> 67a9ab5ce70a
Step 4 : ADD *.war /app.war
No source files were specified

在我的 Dockerfile 中,我复制了原始 jhipster Dockerfile 并替换了第一行和ADD . /app

FROM ubuntu:trusty

ADD . /app

ENV JHIPSTER_SLEEP 0

# add directly the war
ADD *.war /app.war

RUN sh -c 'touch /app.war'
VOLUME /tmp
EXPOSE 8080
CMD echo "The application will start in ${JHIPSTER_SLEEP}s..." && \
    sleep ${JHIPSTER_SLEEP} && \
    java -Djava.security.egd=file:/dev/./urandom -jar /app.war

我看到的图像有docker images但没有REPOSITORYTAG!所以当我尝试启动时docker run 67a9ab5ce70a出现此错误

C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: No command specified.docker run 67a9ab5ce70a

有人可以帮助我将本地修改推送到 docker 图像吗?

4

1 回答 1

0

当你说

docker build -t general03-jhipster .

这意味着“基于位于.中的 docker 文件构建一个名为general03-jhipster的 docker 镜像”

因此,您通常应该使用 运行它docker run general03-jhipster,但没有参数,这将在您提供端口绑定之前不起作用

对于默认的 JHipster 配置和开发配置文件

你应该跑

docker run --rm -p 8080:8080 general03-jhipster

如果这失败了,你可能会在 prod 模式下开始,所以它需要一些数据库绑定。在命令行中传递它可能会变得混乱。在这里你应该看看 JHipsters Docker compose support,使用 docker compose 来管理你所有的数据库、elasticsearch 实例等。

编辑:我第一次在这里没有注意到错误

Step 4 : ADD *.war /app.war
No source files were specified

所以很简单,你没有生成war文件,所以很明显docker构建失败了。

利用

./mvnw package -Pprod docker:build

或者

./gradlew build -Pprod bootRepackage buildDocker

生成正确的 docker 构建。

如果你想改变一些 docker 特定的想法(并使用 gradle),你可以在“gradle/docker.gradle”中改变它

于 2017-01-04T14:07:11.280 回答