mirror of
https://github.com/Retropex/dockerfile-deps.git
synced 2025-05-12 16:40:40 +02:00
Update images CI
This commit is contained in:
parent
1882d54625
commit
4eb388b722
@ -7,17 +7,21 @@
|
||||
version: 2
|
||||
jobs:
|
||||
build:
|
||||
machine:
|
||||
enabled: true
|
||||
docker:
|
||||
- image: cimg/base:stable
|
||||
steps:
|
||||
- checkout
|
||||
- setup_remote_docker:
|
||||
version: 20.10.7
|
||||
|
||||
# publish jobs require $DOCKERHUB_USER, $DOCKERHUB_PASS defined
|
||||
publish_linuxamd64:
|
||||
machine:
|
||||
enabled: true
|
||||
docker:
|
||||
- image: cimg/base:stable
|
||||
steps:
|
||||
- checkout
|
||||
- checkout
|
||||
- setup_remote_docker:
|
||||
version: 20.10.7
|
||||
- run:
|
||||
command: |
|
||||
source ".circleci/parse-tag.sh"
|
||||
@ -30,10 +34,12 @@ jobs:
|
||||
fi
|
||||
|
||||
publish_linuxarm64v8:
|
||||
machine:
|
||||
enabled: true
|
||||
docker:
|
||||
- image: cimg/base:stable
|
||||
steps:
|
||||
- checkout
|
||||
- checkout
|
||||
- setup_remote_docker:
|
||||
version: 20.10.7
|
||||
- run:
|
||||
command: |
|
||||
source ".circleci/parse-tag.sh"
|
||||
@ -42,7 +48,7 @@ jobs:
|
||||
if [ -f $DOCKERHUB_DOCKEFILE ]; then
|
||||
#
|
||||
# Make sure the builder is copy the arm emulator
|
||||
sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||
sudo docker $DOCKER_OPTIONS run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||
sudo apt update
|
||||
sudo apt install -y qemu qemu-user-static qemu-user binfmt-support
|
||||
sudo cp /usr/bin/qemu-aarch64-static "$(dirname "$DOCKERHUB_DOCKEFILE")/qemu-aarch64-static"
|
||||
@ -53,10 +59,12 @@ jobs:
|
||||
echo "Skipping linuxarm64v8 because $DOCKERHUB_DOCKEFILE is not found"
|
||||
fi
|
||||
publish_linuxarm32v7:
|
||||
machine:
|
||||
enabled: true
|
||||
docker:
|
||||
- image: cimg/base:stable
|
||||
steps:
|
||||
- checkout
|
||||
- setup_remote_docker:
|
||||
version: 20.10.7
|
||||
- run:
|
||||
command: |
|
||||
source ".circleci/parse-tag.sh"
|
||||
@ -65,7 +73,7 @@ jobs:
|
||||
if [ -f $DOCKERHUB_DOCKEFILE ]; then
|
||||
#
|
||||
# Make sure the builder is copy the arm emulator
|
||||
sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||
sudo docker $DOCKER_OPTIONS run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||
if grep "#EnableQEMU" $DOCKERHUB_DOCKEFILE; then
|
||||
sudo apt update
|
||||
sudo apt install -y qemu qemu-user-static qemu-user binfmt-support
|
||||
@ -78,19 +86,22 @@ jobs:
|
||||
echo "Skipping linuxarm32v7 because $DOCKERHUB_DOCKEFILE is not found"
|
||||
fi
|
||||
publish_multiarch:
|
||||
machine:
|
||||
enabled: true
|
||||
image: circleci/classic:201808-01
|
||||
docker:
|
||||
- image: cimg/base:stable
|
||||
steps:
|
||||
- checkout
|
||||
- setup_remote_docker:
|
||||
version: 20.10.7
|
||||
- run:
|
||||
command: |
|
||||
# Turn on Experimental features
|
||||
sudo mkdir $HOME/.docker
|
||||
sudo sh -c 'echo "{ \"experimental\": \"enabled\" }" >> $HOME/.docker/config.json'
|
||||
ssh remote-docker <<EOF
|
||||
sudo bash -c 'echo "{\"experimental\": true}" > /etc/docker/daemon.json'
|
||||
sudo systemctl restart docker
|
||||
EOF
|
||||
source ".circleci/parse-tag.sh"
|
||||
#
|
||||
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
|
||||
sudo docker $DOCKER_OPTIONS login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
|
||||
IMAGES=""
|
||||
if [ -f $DOCKERHUB_DOCKEFILE_AMD64 ]; then
|
||||
IMAGES="$IMAGES $DOCKERHUB_DESTINATION-amd64"
|
||||
@ -106,15 +117,15 @@ jobs:
|
||||
else
|
||||
sudo docker manifest create --amend $DOCKERHUB_DESTINATION $IMAGES
|
||||
if [ -f $DOCKERHUB_DOCKEFILE_AMD64 ]; then
|
||||
sudo docker manifest annotate $DOCKERHUB_DESTINATION $DOCKERHUB_DESTINATION-amd64 --os linux --arch amd64
|
||||
sudo docker $DOCKER_OPTIONS manifest annotate $DOCKERHUB_DESTINATION $DOCKERHUB_DESTINATION-amd64 --os linux --arch amd64
|
||||
fi
|
||||
if [ -f $DOCKERHUB_DOCKEFILE_ARM32 ]; then
|
||||
sudo docker manifest annotate $DOCKERHUB_DESTINATION $DOCKERHUB_DESTINATION-arm32v7 --os linux --arch arm --variant v7
|
||||
sudo docker $DOCKER_OPTIONS manifest annotate $DOCKERHUB_DESTINATION $DOCKERHUB_DESTINATION-arm32v7 --os linux --arch arm --variant v7
|
||||
fi
|
||||
if [ -f $DOCKERHUB_DOCKEFILE_ARM64 ]; then
|
||||
sudo docker manifest annotate $DOCKERHUB_DESTINATION $DOCKERHUB_DESTINATION-arm64v8 --os linux --arch arm64 --variant v8
|
||||
sudo docker $DOCKER_OPTIONS manifest annotate $DOCKERHUB_DESTINATION $DOCKERHUB_DESTINATION-arm64v8 --os linux --arch arm64 --variant v8
|
||||
fi
|
||||
sudo docker manifest push $DOCKERHUB_DESTINATION -p
|
||||
sudo docker $DOCKER_OPTIONS manifest push $DOCKERHUB_DESTINATION -p
|
||||
fi
|
||||
|
||||
workflows:
|
||||
|
@ -28,6 +28,8 @@ DOCKERHUB_DESTINATION="$DOCKERHUB_REPO:$LATEST_TAG"
|
||||
DOCKERHUB_DOCKEFILE_ARM64="$NODE_NAME/$NODE_VERSION/linuxarm64v8.Dockerfile"
|
||||
DOCKERHUB_DOCKEFILE_ARM32="$NODE_NAME/$NODE_VERSION/linuxarm32v7.Dockerfile"
|
||||
DOCKERHUB_DOCKEFILE_AMD64="$NODE_NAME/$NODE_VERSION/linuxamd64.Dockerfile"
|
||||
DOCKER_OPTIONS="--tlsverify -H=$DOCKER_HOST --tlscacert=$DOCKER_CERT_PATH/ca.pem --tlscert=$DOCKER_CERT_PATH/cert.pem --tlskey=$DOCKER_CERT_PATH/key.pem"
|
||||
|
||||
|
||||
echo "LATEST_TAG=$LATEST_TAG"
|
||||
echo "NODE_VERSION=$NODE_VERSION"
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Pushing $DOCKERHUB_DOCKEFILE to dockerhub repository $DOCKERHUB_DESTINATION"
|
||||
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
|
||||
sudo docker build --pull -t $DOCKERHUB_DESTINATION -f "$DOCKERHUB_DOCKEFILE" "$NODE_NAME/$NODE_VERSION"
|
||||
sudo docker push $DOCKERHUB_DESTINATION
|
||||
sudo docker $DOCKER_OPTIONS login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
|
||||
sudo docker $DOCKER_OPTIONS build --pull -t $DOCKERHUB_DESTINATION -f "$DOCKERHUB_DOCKEFILE" "$NODE_NAME/$NODE_VERSION"
|
||||
sudo docker $DOCKER_OPTIONS push $DOCKERHUB_DESTINATION
|
@ -1,4 +1,11 @@
|
||||
FROM postgres:13.4 as downloader
|
||||
|
||||
RUN set -ex \
|
||||
&& apt-get update \
|
||||
&& apt-get install -qq --no-install-recommends qemu-user-static binfmt-support
|
||||
|
||||
FROM --platform=arm postgres:13.4
|
||||
COPY --from=downloader /usr/bin/qemu-arm-static /usr/bin/qemu-arm-static
|
||||
|
||||
# Postgres doesn't ship packages for 9.6
|
||||
ENV PREVIOUS_VERSION 9.6
|
||||
|
@ -1,4 +1,11 @@
|
||||
FROM postgres:13.4 as downloader
|
||||
|
||||
RUN set -ex \
|
||||
&& apt-get update \
|
||||
&& apt-get install -qq --no-install-recommends qemu-user-static binfmt-support
|
||||
|
||||
FROM --platform=arm64 postgres:13.4
|
||||
COPY --from=downloader /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static
|
||||
|
||||
ENV PREVIOUS_VERSION 9.6
|
||||
RUN cp /etc/apt/sources.list.d/pgdg.list /etc/apt/sources.list.d/pgdg.list.backup && \
|
||||
|
@ -12,6 +12,7 @@ if [[ "$CURRENT_PGVERSION" != "$EXPECTED_PGVERSION" ]] && \
|
||||
[[ "$CURRENT_PGVERSION" != "" ]]; then
|
||||
|
||||
if ! [ -f "/usr/lib/postgresql/$CURRENT_PGVERSION/bin/pg_upgrade" ]; then
|
||||
echo "Trying to install Postgres $CURRENT_PGVERSION migration tools"
|
||||
sed -i "s/$/ $CURRENT_PGVERSION/" /etc/apt/sources.list.d/pgdg.list
|
||||
if ! apt-get update; then
|
||||
echo "apt-get update failed. Are you using raspberry pi 4? If yes, please follow https://blog.samcater.com/fix-workaround-rpi4-docker-libseccomp2-docker-20/"
|
||||
|
Loading…
Reference in New Issue
Block a user