Приложение HelloWorld Apama Docker - PullRequest
2 голосов
/ 02 апреля 2019

Я пытаюсь создать простой образ докера HelloWorld, используя apama-builder. Однако я получаю следующую ошибку:

INFO: copying the project file from /app/HelloWorld to output directory /app/deployed
ERROR: Failed to create correlator initialization list: /app/deployed
The command '/bin/sh -c engine_deploy --outputDeployDir /app/deployed /app/HelloWorld' returned a non-zero code: 100

Мой файл Docker выглядит следующим образом:

# Use the build environment
FROM store/softwareag/apama-builder:10.3 as builder

# Copy project assets into build environment
COPY --chown=1724:1724 . /app/HelloWorld

# Deploy the apama project
RUN engine_deploy --outputDeployDir /app/deployed /app/HelloWorld

# Add any additional build steps you may have, such as building plugins, here
# RUN ...

# Final image is based on the runtime base image
FROM store/softwareag/apama-correlator:10.3

# Copy deployed project from the build environment
COPY --chown=1724:1724 --from=builder /app/deployed /app/deployed

# Add copies for any additional build artifacts created in the build environment
# COPY --from=builder ...

WORKDIR /app

# Run the deployed project
CMD ["correlator", "--config", "Project_deployed", "--logfile", "/dev/stdout"]

Примечание. Я использую CentOS, и мое приложение HelloWorld находится в / app / HelloWorld, и я хочу, чтобы вывод был в / app / deployed.

1 Ответ

2 голосов
/ 02 апреля 2019

Есть несколько проблем, но это связано с тем, что процесс развертывания не запускается от имени пользователя root и поэтому не может создать выходной каталог. Это поначалу меня тоже одурачило :)

Во-первых,

# Copy project assets into build environment
COPY --chown=1724:1724 . /app/HelloWorld

работает, но engine_deploy - нет, потому что не может получить доступ /app/deployed

поэтому, если вы измените строку engine_deploy на

RUN engine_deploy --outputDeployDir ${APAMA_WORK}/deployed /app/HelloWorld

Это создаст работоспособное развертывание приложения в «рабочем» каталоге, обычно /apama_work

Теперь, потому что это не то место, куда вы поместили его, вам нужно поменять копию со сборщика

# Copy deployed project from the build environment
COPY --chown=1724:1724 --from=builder ${APAMA_WORK}/deployed ${APAMA_WORK}/deployed

и, наконец, строка CMD должна измениться

# Run the deployed project
CMD ["correlator", "--config", "deployed", "--logfile", "/dev/stdout"]

для соответствия выходному каталогу

...