Невозможно запустить Heroku exec на контейнере докера - PullRequest
0 голосов
/ 30 сентября 2018

Я выполнил следующие шаги (https://devcenter.heroku.com/articles/exec#enabling-docker-support) для установки curl (curl 7.61.1 (x86_64-alpine-linux-musl)) libcurl / 7.61.1 LibreSSL / 2.0.0 zlib / 1.2.11 libssh2/1.8.0 nghttp2 / 1.32.0), python, bash и openssh (OpenSSH_7.2p2-hpn14v4, OpenSSL 1.0.2p 14 августа 2018 г.) Я создал файл /app/.profile.d/heroku-exec.sh в своем контейнере и добавил ссылку на sym.

Однако при запуске heroku ps:exec -a my-app возвращается следующее сообщение:

Establishing credentials... error ! Could not connect to dyno! ! Check if the dyno is running with `heroku ps'

Я проверил, что мое приложение действительно запущено (& имеет runtime-heroku-exec включена):

web (Free): /bin/sh -c exec\ java\ \$JAVA_OPTS\ -Dserver.port\=\$PORT\ -Djava.security.egd\=file:/dev/./urandom\ -jar\ /app.jar (1) web.1: up 2018/09/30 09:34:55 -0600 (~ 4m ago)

Я проверил, что * heroku-exec.sh существует в моем развернутом контейнере, выполнив heroku run -a my-app bash и cat /app/.profile.d/heroku-exec.sh

На данный момент я не уверен, что попробовать, чтобы выяснить, почему heroku exec не будет работать на моем контейнере. Вот как выглядит мой Dockerfile в случае, если что-то не так с тем, как я собрал свое приложение:

FROM openjdk:8-jdk-alpine

RUN apk add --no-cache openssh-keygen
RUN apk add --no-cache openssh-client=7.2_p2-r5 --repository=http://dl-cdn.alpinelinux.org/alpine/v3.4/main --allow-untrusted
RUN apk add --no-cache openssh-sftp-server=7.2_p2-r5 --repository=http://dl-cdn.alpinelinux.org/alpine/v3.4/main --allow-untrusted
RUN apk add --no-cache openssh=7.2_p2-r5 --repository=http://dl-cdn.alpinelinux.org/alpine/v3.4/main --allow-untrusted
RUN apk add --no-cache curl
RUN apk add --no-cache bash
RUN apk add --update --no-cache python
RUN rm /bin/sh && ln -s /bin/bash /bin/sh

RUN adduser -D app-user
USER app-user

ARG JAR_FILE

ARG PORT

ARG HEROKU_FILE_NAME

COPY ${JAR_FILE} app.jar

COPY ${HEROKU_FILE_NAME} /app/.profile.d/heroku-exec.sh

ENV JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000

HEALTHCHECK --interval=15m --timeout=10s --retries=3 --start-period=1m CMD curl --fail http://localhost:8080/restaurantscores/actuator/health || exit 1

CMD exec java $JAVA_OPTS -Dserver.port=$PORT -Djava.security.egd=file:/dev/./urandom -jar /app.jar
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...