正在将keycloak停靠器映像部署到heroku

9q78igpj  于 2022-11-08  发布在  Java
关注(0)|答案(3)|浏览(154)

我正在尝试部署我的自定义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
cunj1qz1

cunj1qz11#

我注意到这实际上不是heroku的问题,而是docker的问题。Heroku不允许在运行容器时以root身份运行任何脚本或命令。它向容器中添加了一个虚拟的非root用户,容器将在您在dockerfile中指定的workdir下的该用户上下文下运行。您需要为shell脚本给予执行权限,以使其正常运行。这就是我的问题所在

yhived7q

yhived7q2#

需要一些调整来与heroku一起工作。我尝试了这个https://github.com/Jeff-Tian/keycloak-heroku并成功了,现场演示:是的。
一键部署:

源代码:https://github.com/Jeff-Tian/keycloak-heroku

警告:

因为keycloak需要更多的资源,所以免费的dyna不能使用。所以你需要每月支付7美元来购买最小的dyno:

lp0sw83n

lp0sw83n3#

我有同样的错误,我修复了它,你只需要从git给www.example.com权限docker-entrypoint.sh,就像git add --chmod=+x -- docker-entrypoint.sh

相关问题