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 |
|||
|
|||
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 / |
|||
|
|||
RUN <<EOF |
|||
set -Eeuo pipefail |
|||
systemctl enable flightctl-agent.service |
|||
systemctl mask bootc-fetch-apply-updates.timer |
|||
systemctl enable odoo.target |
|||
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