Я пытаюсь создать образ Ducker Wildfly с источником данных postgres.Как добавить модуль в Wildfly с помощью CLI
Когда я создаю файл docker, он всегда терпит неудачу с разрешением Отказано, когда я пытаюсь установить модуль postgres.
Мой dockerfile выглядит выглядеть так:
FROM wildflyext/wildfly-camel
RUN /opt/jboss/wildfly/bin/add-user.sh admin admin --silent
ADD postgresql-9.4-1201.jdbc41.jar /tmp/
ADD config.sh /tmp/
ADD batch.cli /tmp/
RUN /tmp/config.sh
Который называет следующие:
#!/bin/bash
JBOSS_HOME=/opt/jboss/wildfly
JBOSS_CLI=$JBOSS_HOME/bin/jboss-cli.sh
JBOSS_MODE=${1:-"standalone"}
JBOSS_CONFIG=${2:-"$JBOSS_MODE.xml"}
function wait_for_wildfly() {
until `$JBOSS_CLI -c "ls /deployment" &> /dev/null`; do
sleep 10
done
}
echo "==> Starting WildFly..."
$JBOSS_HOME/bin/$JBOSS_MODE.sh -c $JBOSS_CONFIG > /dev/null &
echo "==> Waiting..."
wait_for_wildfly
echo "==> Executing..."
$JBOSS_CLI -c --file=`dirname "$0"`/batch.cli --connect
echo "==> Shutting down WildFly..."
if [ "$JBOSS_MODE" = "standalone" ]; then
$JBOSS_CLI -c ":shutdown"
else
$JBOSS_CLI -c "/host=*:shutdown"
fi
И
batch
module add --name=org.postgresql --resources=/tmp/postgresql-9.4-1201.jdbc41.jar --dependencies=javax.api,javax.transaction.api
/subsystem=datasources/jdbc-driver=postgresql:add(driver-name=postgresql,driver-module-name=org.postgresql,driver-xa-datasource-class-name=org.postgresql.xa.PGXADataSource)
run-batch
Выход при строительстве является:
==> Запуск WildFly ... ==> Ожидание ... ==> Выполнение ... Не удалось найти файл при копировании файловой системы /tmp/postgresql-9.4-1201.jdbc41.jar в /выбрать/JBoss/wildfly/модули/орг/PostgreSQL/главная/PostgreSQL-9.4-1201.jdbc41.jar: /tmp/postgresql-9.4-1201.jdbc41.jar (отказано в)
Какие разрешения требуется, и где я устанавливаю разрешение (ы)?
Благодаря
Спасибо. Изменение разрешений на банку перед ее добавлением привело меня немного дальше. Теперь я получаю: 'Пакет не удалось со следующей ошибкой (вы остаетесь в режиме пакетного редактирования, чтобы иметь возможность исправить ошибку): {" WFLYCTL0062: Сложная операция не выполнена и была отброшена. Шаги, которые не удались: "=> {"Operation step-1" => "WFLYJCA0041: Не удалось загрузить модуль для драйвера [org.postgresql]"}} ' – Magick
У вас есть правильный JAR с драйвером? Меня устраивает.Тем не менее вам не нужно использовать пакетный режим в batch.cli (поскольку «добавление модуля» - это команда, а не операция, которая может быть использована в пакете, - поэтому у вас есть пакет с одной операцией). – kwart
Привет @kwart, спасибо за помощь. Я использую тот же самый драйвер, о котором вы говорили, - postgresql-9.4-1201.jdbc41.jar. Не могли бы вы поделиться с командой cli, которую вы используете для добавления драйвера? Я использую пакет, так как я хотел бы 1) добавить драйвер, затем 2) добавить datasource. – Magick