将keycloak docker镜像部署到heroku上。

问题描述 投票:0回答:1

我试图部署我的自定义keycloak docker镜像,它从jbosskeycloak扩展到heroku容器堆栈。

它部署成功,但在启动时却出错说权限被拒绝。

我是新的heroku容器。有人能帮帮我吗?

下面是我的heroku.yml文件

    addons:
        - plan: heroku-postgresql:hobby-dev
          as: DATABASE
build:
    docker:
        web: Dockerfile

这是我的docker文件

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
docker heroku jboss keycloak
1个回答
0
投票

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


0
投票

需要一些调整来与heroku工作。我试过这个 https:/github.comJeff-Tiankeycloak-heroku。 并成功,现场演示。https:/unisso.herokuapp.com。.

一键部署,。

Deploy to Heroku

源代码。https:/github.comJeff-Tiankeycloak-heroku。

© www.soinside.com 2019 - 2024. All rights reserved.