10 changed files with 91 additions and 22 deletions
@ -0,0 +1 @@ |
|||||
|
TARGET_IMAGE_TEMPLATE='edge-registry.itix.fr/demo-edge-retail/${SCENARIO}:latest' |
||||
@ -0,0 +1,3 @@ |
|||||
|
AuthorizedKeysFile /etc/ssh/authorized_keys/%u.keys .ssh/authorized_keys |
||||
|
PermitRootLogin prohibit-password |
||||
|
#LogLevel DEBUG |
||||
@ -0,0 +1,13 @@ |
|||||
|
Defaults !visiblepw |
||||
|
Defaults always_set_home |
||||
|
Defaults match_group_by_gid |
||||
|
Defaults always_query_group_plugin |
||||
|
Defaults env_reset |
||||
|
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS" |
||||
|
Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE" |
||||
|
Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES" |
||||
|
Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE" |
||||
|
Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY" |
||||
|
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin |
||||
|
root ALL=(ALL) NOPASSWD: ALL |
||||
|
%wheel ALL=(ALL) NOPASSWD: ALL |
||||
@ -1,23 +1,8 @@ |
|||||
FROM edge-registry.itix.fr/demo-edge-retail/generic:latest |
FROM edge-registry.itix.fr/demo-edge-retail/generic:latest |
||||
|
|
||||
ARG ADMIN_USERNAME=demo \ |
|
||||
ADMIN_PASSWORD=redhat |
|
||||
|
|
||||
RUN <<EOF |
|
||||
set -Eeuo pipefail |
|
||||
|
|
||||
dnf config-manager --enable ansible-automation-platform-2.5-for-rhel-9-$(arch)-rpms |
|
||||
dnf install -y mkpasswd podman skopeo flightctl-agent |
|
||||
|
|
||||
if [ -n "$ADMIN_USERNAME" ]; then |
|
||||
useradd -m -G wheel -p "$(echo -n "$ADMIN_PASSWORD" | mkpasswd -m bcrypt --stdin)" "$ADMIN_USERNAME" |
|
||||
fi |
|
||||
EOF |
|
||||
|
|
||||
ADD --chown=root:root root / |
ADD --chown=root:root root / |
||||
|
|
||||
RUN <<EOF |
RUN <<EOF |
||||
set -Eeuo pipefail |
set -Eeuo pipefail |
||||
systemctl enable flightctl-agent.service |
systemctl enable odoo.target |
||||
systemctl mask bootc-fetch-apply-updates.timer |
|
||||
EOF |
EOF |
||||
|
|||||
@ -0,0 +1,28 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
set -Eeuo pipefail |
||||
|
declare -a container_state=() |
||||
|
MAX_ATTEMPTS=60 |
||||
|
|
||||
|
for attempt in {1..$MAX_ATTEMPTS}; do |
||||
|
echo "Checking Odoo deployment ($attempt/$MAX_ATTEMPTS)..." |
||||
|
|
||||
|
state=1 |
||||
|
for container in odoo-db odoo-app; do |
||||
|
container_state=( $( ( podman inspect "$container" || true ) | jq -r '.[0].State.Status // "unknown", .[0].State.Health.Status // "unknown"') ) |
||||
|
echo "Container $container has state ${container_state[0]} and its health is ${container_state[1]}!" |
||||
|
if [[ "${container_state[0]}-${container_state[1]}" != "running-healthy" ]]; then |
||||
|
state=0 |
||||
|
fi |
||||
|
done |
||||
|
|
||||
|
if [[ $state -eq 1 ]]; then |
||||
|
echo "Odoo deployment is up and running!" |
||||
|
exit 0 |
||||
|
fi |
||||
|
|
||||
|
sleep 5 |
||||
|
done |
||||
|
|
||||
|
echo "Odoo deployment is not running correctly after $MAX_ATTEMPTS attempts!" |
||||
|
exit 1 |
||||
@ -0,0 +1,24 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
set -Eeuo pipefail |
||||
|
|
||||
|
if [[ "$UID" -ne 0 ]]; then |
||||
|
echo "This command must be run as root!" |
||||
|
exit 1 |
||||
|
fi |
||||
|
|
||||
|
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" |
||||
|
PROJECT_DIR="$(dirname "$SCRIPT_DIR")" |
||||
|
|
||||
|
. "$PROJECT_DIR/config.env" |
||||
|
|
||||
|
for dir in "$PROJECT_DIR"/{generic,scenario*}; do |
||||
|
if [ -d "$dir" -a -f "$dir/Containerfile" ]; then |
||||
|
export SCENARIO="${dir##*/}" |
||||
|
TARGET_IMAGE="$(echo -n "$TARGET_IMAGE_TEMPLATE" | envsubst)" |
||||
|
echo "Building container image $TARGET_IMAGE from $SCENARIO..." |
||||
|
pushd "$dir" > /dev/null |
||||
|
"$SCRIPT_DIR/build.sh" "$TARGET_IMAGE" |
||||
|
popd > /dev/null |
||||
|
fi |
||||
|
done |
||||
Loading…
Reference in new issue