我正在尝试部署我的自定义keycloak docker映像,它从jboss/keycloak扩展到heroku容器堆栈。
它已成功部署,但出现错误,表示启动本身时权限被拒绝。
我是新来的,谁能帮我一下?
这是我的heroku.yml文件
addons:
- plan: heroku-postgresql:hobby-dev
as: DATABASE
build:
docker:
web: Dockerfile
这是我的文件
FROM jboss/keycloak:latest
ENV DB_PORT 5432
ENV DB_DATABASE mydatabase
ENV DB_USER myuser
ENV DB_PASSWORD mypassword
ENV DB_VENDOR postgres
ENV DB_ADDR postgres
ENV KEYCLOAK_USER mykeycloak
ENV KEYCLOAK_PASSWORD mykeycloakpassword
ENV PORT 8080
COPY standalone.xml /opt/jboss/keycloak/standalone/standalone.xml
COPY standalone.xml /opt/jboss/keycloak/standalone/configuration/standalone.xml
COPY meraklis /opt/jboss/keycloak/themes/mytheme
COPY docker-entrypoint.sh /opt/jboss/tools
ENTRYPOINT [ "/opt/jboss/tools/docker-entrypoint.sh" ]
CMD ["-b", "0.0.0.0"]
这是heroku日志中的错误
2020-03-18T05:07:02.975073+00:00 heroku[web.1]: Starting process with command `-b 0.0.0.0`
2020-03-18T05:07:05.796708+00:00 heroku[web.1]: State changed from starting to crashed
2020-03-18T05:07:05.773550+00:00 heroku[web.1]: Process exited with status 126
2020-03-18T05:07:05.733774+00:00 app[web.1]: Error: Permission denied
3条答案
按热度按时间cunj1qz11#
我注意到这实际上不是heroku的问题,而是docker的问题。Heroku不允许在运行容器时以root身份运行任何脚本或命令。它向容器中添加了一个虚拟的非root用户,容器将在您在dockerfile中指定的workdir下的该用户上下文下运行。您需要为shell脚本给予执行权限,以使其正常运行。这就是我的问题所在
yhived7q2#
需要一些调整来与heroku一起工作。我尝试了这个https://github.com/Jeff-Tian/keycloak-heroku并成功了,现场演示:是的。
一键部署:
源代码:https://github.com/Jeff-Tian/keycloak-heroku
警告:
因为keycloak需要更多的资源,所以免费的dyna不能使用。所以你需要每月支付7美元来购买最小的dyno:
lp0sw83n3#
我有同样的错误,我修复了它,你只需要从git给www.example.com权限docker-entrypoint.sh,就像
git add --chmod=+x -- docker-entrypoint.sh