Use dockerfiles for supervisor
This commit is contained in:
parent
23ac642206
commit
a3b0bf7e91
|
@ -1,11 +0,0 @@
|
||||||
[submodule "supervisor-base/openembedded-core"]
|
|
||||||
path = supervisor-base/openembedded-core
|
|
||||||
url = git://git.openembedded.org/openembedded-core
|
|
||||||
branch = morty
|
|
||||||
[submodule "supervisor-base/bitbake"]
|
|
||||||
path = supervisor-base/bitbake
|
|
||||||
url = git://git.openembedded.org/bitbake
|
|
||||||
[submodule "supervisor-base/meta-openembedded"]
|
|
||||||
path = supervisor-base/meta-openembedded
|
|
||||||
url = git://git.openembedded.org/meta-openembedded
|
|
||||||
branch = morty
|
|
|
@ -25,6 +25,6 @@ RUN add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubunt
|
||||||
RUN apt-get update && apt-get install -y docker-ce && rm -rf /var/lib/apt/lists/*
|
RUN apt-get update && apt-get install -y docker-ce && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY src/run-resinos.sh /
|
COPY src/run-resinos.sh /
|
||||||
COPY src/run-supervisor-base.sh /
|
COPY src/run-supervisor.sh /
|
||||||
|
|
||||||
WORKDIR /yocto/image
|
WORKDIR /yocto/image
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -o errexit
|
|
||||||
|
|
||||||
groupadd -g $BUILDER_GID builder
|
|
||||||
useradd -m -u $BUILDER_UID -g $BUILDER_GID builder
|
|
||||||
|
|
||||||
sudo -H -u builder /bin/bash -c "cd /yocto/image \
|
|
||||||
&& source oe-core/oe-init-build-env build bitbake \
|
|
||||||
&& DL_DIR=/yocto/shared-downloads SSTATE_DIR=/yocto/shared-sstate MACHINE=$TARGET_MACHINE /yocto/image/bitbake/bin/bitbake core-image-minimal"
|
|
||||||
|
|
||||||
cp --dereference /yocto/image/build/tmp-glibc/deploy/images/$TARGET_MACHINE/core-image-minimal-$TARGET_MACHINE.tar.gz /yocto/image/rootfs.tar.gz
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
DOCKER_TIMEOUT=20 # Wait 20 seconds for docker to start
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
echo "[INFO] Running cleanup..."
|
||||||
|
|
||||||
|
# Stop docker gracefully
|
||||||
|
echo "[INFO] Stopping in container docker..."
|
||||||
|
DOCKERPIDFILE=/var/run/docker.pid
|
||||||
|
if [ -f $DOCKERPIDFILE ] && [ -s $DOCKERPIDFILE ] && ps $(cat $DOCKERPIDFILE) | grep -q docker; then
|
||||||
|
kill $(cat $DOCKERPIDFILE)
|
||||||
|
# Now wait for it to die
|
||||||
|
STARTTIME=$(date +%s)
|
||||||
|
ENDTIME=$(date +%s)
|
||||||
|
while [ -f $DOCKERPIDFILE ] && [ -s $DOCKERPIDFILE ] && ps $(cat $DOCKERPIDFILE) | grep -q docker; do
|
||||||
|
if [ $(($ENDTIME - $STARTTIME)) -le $DOCKER_TIMEOUT ]; then
|
||||||
|
sleep 1
|
||||||
|
ENDTIME=$(date +%s)
|
||||||
|
else
|
||||||
|
echo "[ERROR] Timeout while waiting for in container docker to die."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echo "[WARN] Can't stop docker container."
|
||||||
|
echo "[WARN] Your host might have been left with unreleased resources (ex. loop devices)."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" == "fail" ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
trap 'cleanup fail' SIGINT SIGTERM
|
||||||
|
|
||||||
|
# Create the normal user to be used for bitbake (barys)
|
||||||
|
echo "[INFO] Creating and setting builder user $BUILDER_UID:$BUILDER_GID."
|
||||||
|
groupadd -g $BUILDER_GID builder
|
||||||
|
groupadd docker || true
|
||||||
|
useradd -m -u $BUILDER_UID -g $BUILDER_GID -G docker builder
|
||||||
|
|
||||||
|
# Start docker
|
||||||
|
echo "[INFO] Starting docker."
|
||||||
|
dockerd 2> /dev/null &
|
||||||
|
echo "[INFO] Waiting for docker to initialize..."
|
||||||
|
STARTTIME=$(date +%s)
|
||||||
|
ENDTIME=$(date +%s)
|
||||||
|
until docker info >/dev/null 2>&1; do
|
||||||
|
if [ $(($ENDTIME - $STARTTIME)) -le $DOCKER_TIMEOUT ]; then
|
||||||
|
sleep 1
|
||||||
|
ENDTIME=$(date +%s)
|
||||||
|
else
|
||||||
|
echo "[ERROR] Timeout while waiting for docker to come up."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "[INFO] Docker was initialized."
|
||||||
|
|
||||||
|
# Start barys with all the arguments requested
|
||||||
|
echo "[INFO] Running build as builder user..."
|
||||||
|
sudo -H -u builder /yocto/image/resin-yocto-scripts/build/barys $@ &
|
||||||
|
barys_pid=$!
|
||||||
|
wait $barys_pid || true
|
||||||
|
|
||||||
|
cleanup
|
||||||
|
exit 0
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit acd2fd74ed467dc85ec75d5d0815f43e493f29bf
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 1dff2351aa6cdafa5a501e8956cb853ab17ed9ae
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 477805b913a6c4b4b630e42f08cd9e59f1e4e254
|
|
|
@ -0,0 +1 @@
|
||||||
|
FROM %%BASE_IMAGE%%
|
Loading…
Reference in New Issue