docker - 在 keycloak docker 映像中找不到 Dockerfile 文件
问题描述
我最近尝试在本地设置中克隆我们的生产代码,这意味着该代码正在生产中运行。
码头文件看起来像
FROM jboss/keycloak
COPY km.json /opt/jboss
COPY entrypoint.sh /opt/jboss
USER root
RUN chown jboss /opt/jboss/entrypoint.sh && chmod +x /opt/jboss/entrypoint.sh
USER 1000
ENTRYPOINT ["/opt/jboss/entrypoint.sh"]
CMD [""]
我能够成功创建 docker 映像,但是当我尝试运行它时出现错误
Caused by: java.io.FileNotFoundException: km.json (No such file or directory)
回购结构
km/keycloak-images/km.json
km/keycloak-images/DockerFile
km/keycloak-images/entrypoint.sh
Docker撰写文件结构
/km/docker-compose.yml
/km/docker-compose.dev.yml
docker-compose.dev.yml 看起来像
version: '3'
# The only service we expose in local dev is the keycloak server
# running an h2 database.
services:
keycloak:
build: keycloak-image
image: dt-keycloak
environment:
DB_VENDOR: h2
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: password
KEYCLOAK_HOSTNAME: localhost
ports:
- 8080:8080
我从 /km 运行命令
docker-compose -f docker-compose.dev.yml up --build
解决方案
基本上无法在 docker 容器中找到要检查的文件。
$docker run --rm -it <containerName> /bin/bash #this command is used to run the docker and get inside the container.
cd /opt/jboss #check km.json file is there or not
编辑:基本上COPY
(km.json)中源的路径不正确。尝试使用绝对路径使其相对。
FROM jboss/keycloak
COPY ./km.json /opt/jboss # changed this line
COPY entrypoint.sh /opt/jboss
USER root
RUN chown jboss /opt/jboss/entrypoint.sh && chmod +x /opt/jboss/entrypoint.sh
USER 1000
ENTRYPOINT ["/opt/jboss/entrypoint.sh"]
CMD [""]
推荐阅读
- reactjs - TypeScript Async/Await 箭头函数:正确的语法(在 React 中)
- javafx - 线程“JavaFX 应用程序线程”中的 JAVAFX 异常
- reactjs - React & reducers:我可以从内部调用 reducer 吗?
- python - AES - 解密
- node.js - 如何从后端(nodejs)重定向到前端(react)?
- vba - 关闭文件前弹出消息
- python - 使用 Google Cloud 执行长时间运行的任务
- c - [UNIX]在c中发送大文件套接字流
- javascript - 使用 jsZIP 下载多个 pdfmake 文件
- nginx - 无法启动高性能 Web 服务器和反向代理服务器