Skip to content

Commit

Permalink
CI: Update Dockerfile to install OpenSSL 3
Browse files Browse the repository at this point in the history
The custom container is no longer required since the upstream image has
removed (the old version of) OpenSSL entirely.
  • Loading branch information
tesaguri committed Jul 25, 2023
1 parent e51ae8a commit dccecfa
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 14 deletions.
9 changes: 5 additions & 4 deletions .github/workflows/build-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,17 @@ jobs:
- aarch64-unknown-linux-gnu
- armv7-unknown-linux-gnueabihf
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Log into registry
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v2
uses: docker/build-push-action@v4
with:
context: docker/${{ matrix.target }}
context: docker
file: docker/${{ matrix.target }}/Dockerfile
push: true
tags: ghcr.io/tesaguri/pipitor/cross:${{ matrix.target }}
10 changes: 5 additions & 5 deletions docker/aarch64-unknown-linux-gnu/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
FROM ghcr.io/tesaguri/cross:aarch64-unknown-linux-gnu
FROM ghcr.io/cross-rs/aarch64-unknown-linux-gnu:latest

COPY install_libssl3.sh /

RUN dpkg --add-architecture arm64 && \
apt-get update && \
apt-get install --assume-yes libsqlite3-dev libsqlite3-dev:arm64 libssl-dev:arm64

ENV PKG_CONFIG_ALLOW_CROSS_aarch64_unknown_linux_gnu=1 \
PKG_CONFIG_PATH_aarch64_unknown_linux_gnu='/usr/lib/aarch64-linux-gnu/pkgconfig'
apt-get install --assume-yes libsqlite3-dev libsqlite3-dev:arm64 && \
/install_libssl3.sh arm64 aarch64
10 changes: 5 additions & 5 deletions docker/armv7-unknown-linux-gnueabihf/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
FROM ghcr.io/tesaguri/cross:armv7-unknown-linux-gnueabihf
FROM ghcr.io/cross-rs/armv7-unknown-linux-gnueabihf:latest

COPY install_libssl3.sh /

RUN dpkg --add-architecture armhf && \
apt-get update && \
apt-get install --assume-yes libsqlite3-dev libsqlite3-dev:armhf libssl-dev:armhf

ENV PKG_CONFIG_ALLOW_CROSS_armv7_unknown_linux_gnueabihf=1 \
PKG_CONFIG_PATH_armv7_unknown_linux_gnueabihf='/usr/lib/arm-linux-gnueabihf/pkgconfig'
apt-get install --assume-yes libsqlite3-dev libsqlite3-dev:armhf && \
/install_libssl3.sh armhf armhf
33 changes: 33 additions & 0 deletions docker/install_libssl3.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/bin/bash

set -xeo pipefail

if [ "$(lsb_release -rs)" \< '22.04' ]; then
# Build OpenSSL 3 from source since 20.04 (focal) doesn't have `libssl3` package.
purge_list=()
for pkg in build-essential checkinstall zlib1g-dev:"$1"; do
if ! dpkg-query --status "$pkg" >/dev/null 2>/dev/null; then
purge_list+=( "$pkg" )
fi
done
if (( "${#purge_list}" )); then
apt-get install --assume-yes --no-install-recommends "${purge_list[@]}"
fi

curl -fsSO 'https://www.openssl.org/source/openssl-3.0.9.tar.gz'
sha256sum --check <<< 'eb1ab04781474360f77c318ab89d8c5a03abc38e63d65a603cabbf1b00a1dc90 openssl-3.0.9.tar.gz'
tar -xzf openssl-3.0.9.tar.gz
rm openssl-3.0.9.tar.gz

cd openssl-3.0.9
./Configure --cross-compile-prefix="$2-linux-gnu-" --prefix="/usr/$2-linux-gnu" "linux-$2"
make
make install

if (( "${#purge_list}" )); then
apt-get purge --assume-yes --auto-remove "${purge_list[@]}"
fi
else
apt-get update
apt-get install --assume-yes --no-install--recommends libssl3:"$1" libssl-dev:"$1"
fi

0 comments on commit dccecfa

Please sign in to comment.