1
0
mirror of https://github.com/cusspvz/openwrt-builder.docker synced 2025-07-11 16:38:35 +00:00

prepare other targets

This commit is contained in:
José Moreira 2018-09-08 17:59:18 +01:00
parent c03c962f6f
commit b6afc62fa1
6 changed files with 44 additions and 18 deletions

View File

@ -15,7 +15,7 @@ RUN echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/so
&& apt-get autoremove \ && apt-get autoremove \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
ADD etc/entrypoint.sh /entrypoint ADD entrypoint.sh /entrypoint
RUN chmod 755 /entrypoint RUN chmod 755 /entrypoint
RUN mkdir -p /src /output RUN mkdir -p /src /output

View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
chown -R $GOSU_USER /lede chown -R $GOSU_USER /src
# If GOSU_USER environment variable set to something other than 0:0 (root:root), # If GOSU_USER environment variable set to something other than 0:0 (root:root),
# become user:group set within and exec command passed in args # become user:group set within and exec command passed in args

View File

@ -7,6 +7,7 @@ DOCKER_IMAGE=${DOCKER_IMAGE:-$DOCKER_USERNAME/openwrt-builder}
DOCKER="${DOCKER:-docker}" DOCKER="${DOCKER:-docker}"
FORCE=${FORCE:-0}
CLOSE_EXEC="/dev/null" CLOSE_EXEC="/dev/null"
# CLOSE_EXEC=">/dev/null 2>&1" # CLOSE_EXEC=">/dev/null 2>&1"
if [ ! -z DEBUG ]; then if [ ! -z DEBUG ]; then
@ -28,12 +29,15 @@ if [ "$DOCKER_USE_SUDO" != "0" ]; then
fi fi
function docker_tag_exists() { function docker_tag_exists() {
curl --silent -f -lSL https://index.docker.io/v1/repositories/$1/tags/$2 &>$CLOSE_EXEC; [ "$FORCE" != "0" ] && return 1;
curl --silent -f -lSL https://index.docker.io/v1/repositories/$1/tags/$2;
} }
function generate_dockerfile_based_on() { function generate_dockerfile_from() {
echo "FROM $1:base" echo "FROM $1"
cat $2
# Print the Dockerfile, but without the FROM header
cat $2 | grep -v ^FROM
} }
# MAIN - this is where it starts # MAIN - this is where it starts
@ -41,44 +45,54 @@ function generate_dockerfile_based_on() {
echo "BASE - Building/Fetching base image" echo "BASE - Building/Fetching base image"
# Lets pull up the base image # Lets pull up the base image
$DOCKER pull "$DOCKER_IMAGE:base" &>$CLOSE_EXEC; $DOCKER pull "${DOCKER_IMAGE}:base";
# Now that we have it in cache, lets build the base image to ensure # Now that we have it in cache, lets build the base image to ensure
# that it has the same output # that it has the same output
$DOCKER build -t "$DOCKER_IMAGE:base" ./base-image &>$CLOSE_EXEC; $DOCKER build -t "${DOCKER_IMAGE}:base" ./base-image;
# Push the docker base in case it gets changed # Push the docker base in case it gets changed
$DOCKER push "$DOCKER_IMAGE:base" &>$CLOSE_EXEC; $DOCKER push "${DOCKER_IMAGE}:base";
# Now it's time to do the same # Now it's time to do the same
for VERSION in $(ls targets/); do for VERSION in $(ls targets/); do
for TARGET in $(ls targets/${VERSION}/); do for TARGET in $(ls targets/${VERSION}/); do
echo "${VERSION} ${TARGET} - Loading up target configs" echo "${VERSION} ${TARGET} - Loading up target configs"
eval "$(cat targets/${VERSION}/${TARGET})" source targets/${VERSION}/${TARGET}
DOCKER_PACKAGE_BUILDER_TAG="package-builder_${VERSION}_${TARGET}" DOCKER_PACKAGE_BUILDER_TAG="package-builder_${VERSION}_${TARGET}"
DOCKER_IMAGE_BUILDER_TAG="image-builder_${VERSION}_${TARGET}" DOCKER_IMAGE_BUILDER_TAG="image-builder_${VERSION}_${TARGET}"
# Handle Package builder # Handle Package builder
if docker_tag_exists "$DOCKER_IMAGE" "$DOCKER_PACKAGE_BUILDER_TAG"; then if docker_tag_exists "${DOCKER_IMAGE}" "${DOCKER_PACKAGE_BUILDER_TAG}"; then
echo "${VERSION} ${TARGET} - Package Builder already exists" echo "${VERSION} ${TARGET} - Package Builder already exists"
else else
echo "${VERSION} ${TARGET} - Building Package Builder ..." echo "${VERSION} ${TARGET} - Building Package Builder ..."
generate_dockerfile_based_on $DOCKER_IMAGE ./package-builder/Dockerfile | $DOCKER build -f - -t "$DOCKER_IMAGE:$DOCKER_PACKAGE_BUILDER_TAG" ./package-builder &>$CLOSE_EXEC; generate_dockerfile_from "${DOCKER_IMAGE}:base" ./package-builder/Dockerfile | \
$DOCKER build \
-f - \
--build-arg INSTALL_SRC="$INSTALL_PACKAGE_BUILDER" \
-t "${DOCKER_IMAGE}:${DOCKER_PACKAGE_BUILDER_TAG}" \
./package-builder;
echo "${VERSION} ${TARGET} - Pushing Package Builder ..." echo "${VERSION} ${TARGET} - Pushing Package Builder ..."
$DOCKER push "$DOCKER_IMAGE:$DOCKER_PACKAGE_BUILDER_TAG" &>$CLOSE_EXEC; $DOCKER push "${DOCKER_IMAGE}:${DOCKER_PACKAGE_BUILDER_TAG}";
fi fi
# Handle Image builder # Handle Image builder
if docker_tag_exists "$DOCKER_IMAGE" "$DOCKER_IMAGE_BUILDER_TAG"; then if docker_tag_exists "${DOCKER_IMAGE}" "${DOCKER_IMAGE_BUILDER_TAG}"; then
echo "${VERSION} ${TARGET} - Image Builder already exists" echo "${VERSION} ${TARGET} - Image Builder already exists"
else else
echo "${VERSION} ${TARGET} - Building Image Builder ..." echo "${VERSION} ${TARGET} - Building Image Builder ..."
generate_dockerfile_based_on $DOCKER_IMAGE ./image-builder/Dockerfile | $DOCKER build -f - -t "$DOCKER_IMAGE:$DOCKER_IMAGE_BUILDER_TAG" ./image-builder &>$CLOSE_EXEC; generate_dockerfile_from "${DOCKER_IMAGE}:base" ./image-builder/Dockerfile | \
$DOCKER build \
-f - \
--build-arg INSTALL_SRC="$INSTALL_IMAGE_BUILDER" \
-t "${DOCKER_IMAGE}:${DOCKER_IMAGE_BUILDER_TAG}" \
./image-builder;
echo "${VERSION} ${TARGET} - Pushing Image Builder ..." echo "${VERSION} ${TARGET} - Pushing Image Builder ..."
$DOCKER push "$DOCKER_IMAGE:$DOCKER_IMAGE_BUILDER_TAG" &>$CLOSE_EXEC; $DOCKER push "${DOCKER_IMAGE}:${DOCKER_IMAGE_BUILDER_TAG}";
fi fi
done; done;

View File

@ -0,0 +1,5 @@
FROM base
LABEL MAINTAINER "Jose Moreira <josemoreiravarzim@gmail.com>"
ARG INSTALL_SRC
RUN /bin/bash -c "$INSTALL_SRC"

View File

@ -1,2 +1,5 @@
FROM base
LABEL MAINTAINER "Jose Moreira <josemoreiravarzim@gmail.com>" LABEL MAINTAINER "Jose Moreira <josemoreiravarzim@gmail.com>"
ARG INSTALL_SRC
RUN /bin/bash -c "$INSTALL_SRC"

View File

@ -1,2 +1,6 @@
OWRT_IMAGE_BUILDER="http://downloads.openwrt.org/releases/18.06.1/targets/brcm2708/bcm2710/openwrt-imagebuilder-18.06.1-brcm2708-bcm2710.Linux-x86_64.tar.xz" OPENWRT_BASE="http://downloads.openwrt.org/releases/18.06.1/targets/brcm2708/bcm2710"
OWRT_SDK="http://downloads.openwrt.org/releases/18.06.1/targets/brcm2708/bcm2710/openwrt-sdk-18.06.1-brcm2708-bcm2710_gcc-7.3.0_musl.Linux-x86_64.tar.xz" OPENWRT_IMAGE_BUILDER="$OPENWRT_BASE/openwrt-imagebuilder-18.06.1-brcm2708-bcm2710.Linux-x86_64.tar.xz"
OPENWRT_PACKAGE_BUILDER="$OPENWRT_BASE/openwrt-sdk-18.06.1-brcm2708-bcm2710_gcc-7.3.0_musl.Linux-x86_64.tar.xz"
INSTALL_IMAGE_BUILDER="curl $OPENWRT_IMAGE_BUILDER | tar xvJf - --strip-components 1 -C /src"
INSTALL_PACKAGE_BUILDER="curl $OPENWRT_PACKAGE_BUILDER | tar xvJf - --strip-components 1 -C /src"