mirror of
https://github.com/cusspvz/openwrt-builder.docker
synced 2025-07-11 08:28:35 +00:00
prepare other targets
This commit is contained in:
parent
c03c962f6f
commit
b6afc62fa1
@ -15,7 +15,7 @@ RUN echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/so
|
||||
&& apt-get autoremove \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ADD etc/entrypoint.sh /entrypoint
|
||||
ADD entrypoint.sh /entrypoint
|
||||
RUN chmod 755 /entrypoint
|
||||
|
||||
RUN mkdir -p /src /output
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/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),
|
||||
# become user:group set within and exec command passed in args
|
||||
|
42
builder.sh
42
builder.sh
@ -7,6 +7,7 @@ DOCKER_IMAGE=${DOCKER_IMAGE:-$DOCKER_USERNAME/openwrt-builder}
|
||||
|
||||
DOCKER="${DOCKER:-docker}"
|
||||
|
||||
FORCE=${FORCE:-0}
|
||||
CLOSE_EXEC="/dev/null"
|
||||
# CLOSE_EXEC=">/dev/null 2>&1"
|
||||
if [ ! -z DEBUG ]; then
|
||||
@ -28,12 +29,15 @@ if [ "$DOCKER_USE_SUDO" != "0" ]; then
|
||||
fi
|
||||
|
||||
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() {
|
||||
echo "FROM $1:base"
|
||||
cat $2
|
||||
function generate_dockerfile_from() {
|
||||
echo "FROM $1"
|
||||
|
||||
# Print the Dockerfile, but without the FROM header
|
||||
cat $2 | grep -v ^FROM
|
||||
}
|
||||
|
||||
# MAIN - this is where it starts
|
||||
@ -41,44 +45,54 @@ function generate_dockerfile_based_on() {
|
||||
echo "BASE - Building/Fetching 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
|
||||
# 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
|
||||
$DOCKER push "$DOCKER_IMAGE:base" &>$CLOSE_EXEC;
|
||||
$DOCKER push "${DOCKER_IMAGE}:base";
|
||||
|
||||
# Now it's time to do the same
|
||||
for VERSION in $(ls targets/); do
|
||||
for TARGET in $(ls targets/${VERSION}/); do
|
||||
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_IMAGE_BUILDER_TAG="image-builder_${VERSION}_${TARGET}"
|
||||
|
||||
# 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"
|
||||
else
|
||||
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 ..."
|
||||
$DOCKER push "$DOCKER_IMAGE:$DOCKER_PACKAGE_BUILDER_TAG" &>$CLOSE_EXEC;
|
||||
$DOCKER push "${DOCKER_IMAGE}:${DOCKER_PACKAGE_BUILDER_TAG}";
|
||||
fi
|
||||
|
||||
# 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"
|
||||
else
|
||||
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 ..."
|
||||
$DOCKER push "$DOCKER_IMAGE:$DOCKER_IMAGE_BUILDER_TAG" &>$CLOSE_EXEC;
|
||||
$DOCKER push "${DOCKER_IMAGE}:${DOCKER_IMAGE_BUILDER_TAG}";
|
||||
fi
|
||||
|
||||
done;
|
||||
|
@ -0,0 +1,5 @@
|
||||
FROM base
|
||||
LABEL MAINTAINER "Jose Moreira <josemoreiravarzim@gmail.com>"
|
||||
|
||||
ARG INSTALL_SRC
|
||||
RUN /bin/bash -c "$INSTALL_SRC"
|
@ -1,2 +1,5 @@
|
||||
FROM base
|
||||
LABEL MAINTAINER "Jose Moreira <josemoreiravarzim@gmail.com>"
|
||||
|
||||
ARG INSTALL_SRC
|
||||
RUN /bin/bash -c "$INSTALL_SRC"
|
@ -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"
|
||||
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_BASE="http://downloads.openwrt.org/releases/18.06.1/targets/brcm2708/bcm2710"
|
||||
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"
|
Loading…
x
Reference in New Issue
Block a user