Mostly working, hopefully all working
This commit is contained in:
parent
7dc4cad7a4
commit
4c7836424d
26
Makefile
26
Makefile
|
@ -1,10 +1,24 @@
|
||||||
all: pull-containers build-deps build-images
|
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
|
||||||
|
IMAGE_NAME = "asonix/masto-deps"
|
||||||
|
|
||||||
pull-containers:
|
masto: pull-deps images push-images
|
||||||
|
|
||||||
|
all: pull-base deps push-deps pull-deps images push-images
|
||||||
|
|
||||||
|
pull-base:
|
||||||
./container/pull-containers.sh
|
./container/pull-containers.sh
|
||||||
|
|
||||||
build-deps:
|
deps:
|
||||||
./container/build-images.sh Dockerfile-deps ubuntu-dependencies
|
./container/build-images.sh container/Dockerfile-deps $(IMAGE_NAME)
|
||||||
|
|
||||||
build-images:
|
push-deps:
|
||||||
./container/build-images.sh Dockerfile $(git rev-parse --abbrev-ref HEAD)
|
./container/push-containers.sh $(IMAGE_NAME)
|
||||||
|
|
||||||
|
pull-deps:
|
||||||
|
./container/pull-containers.sh $(IMAGE_NAME)
|
||||||
|
|
||||||
|
images:
|
||||||
|
./container/build-images.sh container/Dockerfile "$(GIT_BRANCH)"
|
||||||
|
|
||||||
|
push-images:
|
||||||
|
./container/push-containers.sh $(GIT_BRANCH)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
FROM localhost/ubuntu-dependencies-amd64:latest as build-dep
|
FROM asonix/masto-deps:amd64 as build-dep
|
||||||
|
|
||||||
# Use bash for the shell
|
# Use bash for the shell
|
||||||
SHELL ["bash", "-c"]
|
SHELL ["bash", "-c"]
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
FROM ubuntu:18.04
|
FROM amd64/ubuntu:18.04
|
||||||
|
|
||||||
# Use bash for the shell
|
|
||||||
SHELL ["bash", "-c"]
|
|
||||||
|
|
||||||
# Install Node
|
# Install Node
|
||||||
ENV NODE_VER="12.11.1"
|
ENV NODE_VER="12.11.1"
|
||||||
|
|
|
@ -18,21 +18,25 @@ require_input() {
|
||||||
require_input "$SOURCE" "Dockerfile"
|
require_input "$SOURCE" "Dockerfile"
|
||||||
require_input "$TAG" "container tag"
|
require_input "$TAG" "container tag"
|
||||||
|
|
||||||
architectures=('arm64v8' 'arm32v7' 'amd64')
|
ARCHITECTURES=('arm64v8' 'arm32v7' 'amd64')
|
||||||
|
|
||||||
for architecture in "${architectures[@]}"; do
|
for architecture in "${ARCHITECTURES[@]}"; do
|
||||||
sed "s/FROM ubuntu/FROM $architecture\/ubuntu/g" "$SOURCE" > ""$SOURCE"-$architecture"
|
cp "$SOURCE" "$SOURCE-$architecture"
|
||||||
if [ "$architecture" == arm32v7 ]; then
|
if [ "$architecture" == arm32v7 ]; then
|
||||||
sed -i'' 's/x64/armv7l/g' ""$SOURCE"-$architecture" # for node
|
sed -i'' 's/:amd64/:arm32v7/g' "$SOURCE-$architecture" # source image
|
||||||
sed -i'' 's/amd64/armhf/g' ""$SOURCE"-$architecture" # for tini
|
sed -i'' 's/FROM amd64/FROM arm32v7/g' "$SOURCE-$architecture" # source image
|
||||||
|
sed -i'' 's/x64/armv7l/g' "$SOURCE-$architecture" # for node
|
||||||
|
sed -i'' 's/amd64/armhf/g' "$SOURCE-$architecture" # for tini
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$architecture" == arm64v8 ]; then
|
if [ "$architecture" == arm64v8 ]; then
|
||||||
sed -i'' 's/x64/arm64/g' ""$SOURCE"-$architecture" # for node
|
sed -i'' 's/:amd64/:arm64v8/g' "$SOURCE-$architecture" # source image
|
||||||
sed -i'' 's/amd64/arm64/g' ""$SOURCE"-$architecture" # for tini
|
sed -i'' 's/FROM amd64/FROM arm64v8/g' "$SOURCE-$architecture" # source image
|
||||||
|
sed -i'' 's/x64/arm64/g' "$SOURCE-$architecture" # for node
|
||||||
|
sed -i'' 's/amd64/arm64/g' "$SOURCE-$architecture" # for tini
|
||||||
fi
|
fi
|
||||||
|
|
||||||
buildah build-using-dockerfile -f ""$SOURCE"-$architecture" -t "$TAG-$architecture" ..
|
buildah build-using-dockerfile -f "$SOURCE-$architecture" -t "$TAG:$architecture" .
|
||||||
|
|
||||||
rm ""$SOURCE"-$architecture"
|
rm "$SOURCE-$architecture"
|
||||||
done
|
done
|
||||||
|
|
|
@ -5,5 +5,9 @@ set -xe
|
||||||
architectures=('arm64v8' 'arm32v7' 'amd64')
|
architectures=('arm64v8' 'arm32v7' 'amd64')
|
||||||
|
|
||||||
for architecture in "${architectures[@]}"; do
|
for architecture in "${architectures[@]}"; do
|
||||||
podman pull "$architecture/ubuntu:18.04"
|
if [ "$1" == "" ]; then
|
||||||
|
podman pull "$architecture/ubuntu:18.04"
|
||||||
|
else
|
||||||
|
podman pull "$1:$architecture"
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
23
container/push-containers.sh
Executable file
23
container/push-containers.sh
Executable file
|
@ -0,0 +1,23 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
TAG=$1
|
||||||
|
|
||||||
|
require_input() {
|
||||||
|
input=$1
|
||||||
|
name=$2
|
||||||
|
|
||||||
|
if [ "$input" == "" ]; then
|
||||||
|
echo "Input, $name, required but not present"
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
require_input "$TAG" "container tag"
|
||||||
|
|
||||||
|
ARCHITECTURES=('arm64v8' 'arm32v7' 'amd64')
|
||||||
|
|
||||||
|
for arch in "${ARCHITECTURES[@]}"; do
|
||||||
|
podman push "$TAG:$arch" "docker://docker.io/asonix/masto-deps:$arch"
|
||||||
|
done
|
Loading…
Reference in a new issue