Files
openssh-rpms/docker.README.md
BEN fecceda7c4 merge pr with a lot fixes (#15)
* Add support for Amazon Linux and Docker (#13)

* Modify OpenSSL version to 3.0.8

Version `3.0.0` and `3.0.8` is recommanded by the official, which are FIPS validated. See more: [[ Downloads ] - /source/index.html](https://www.openssl.org/source/)

* Use OpenSSH 9.6p1 official file

Update the baseline file to 9.6p1
Add some comments

* Update README.md

Add a desc for CentOS 7 to install packages

* Update spec file
- Sync spec file to latest(9.6p1)

* Update requirement src
- Add Perl for CentOS 5

* Add support for Amazon Linux and Docker!
- Add support for Amazon Linux 1 / Amazon Linux 2 / Amazon Linux 2023
- Add Dockerfile for CentOS and Amazon Linux
- Fix compile.sh error for using CentOS 5

* only download perl5 when necessary

* only check perl 5 source on el5

* perl not need install in el5

* bump openssl verion

* add notes in pullsrc.sh when download fails

* fix: perl install inside build dir

---------

Co-authored-by: ChowRex <zrx879582094@gmail.com>
2024-02-26 15:51:18 +08:00

3.4 KiB

Wanna 🐳Docker?

Create image

Login registry

# Login info
USERNAME='User'
PASSWORD='Pa$$W0rd'
# Registry URL, leave it blank will use docker offcial registry: registry-1.docker.io
SERVER='harbor.example.com'

docker login -u "$USERNAME" -p "$PASSWORD" "$SERVER"

# Define the path of compenent
COMPONENT="$SERVER/cloudteam/openssh-rpm-builder"

CentOS

Build images
# Specify build versions
VERSIONS=("7" "6" "5")
# Define whether to enable Tsinghua University mirror source. (Very useful for Chinese users)
CHINA_MIRROR=0  # Setting this variable to non-zero means enabling

for VERSION in "${VERSIONS[@]}"
do
  echo "Building version: ${VERSION}"
  # Build docker image
  docker build \
         -t $COMPONENT:centos$VERSION \
         --build-arg VERSION_NUM=$VERSION \
         --build-arg CHINA_MIRROR=$CHINA_MIRROR \
         -f docker/Dockerfile.centos .
done

echo 'The building has been completed!'
Push images
  # Specify build versions
  VERSIONS=("7" "6" "5")

  for VERSION in "${VERSIONS[@]}"
  do
    echo "Pushing version: ${VERSION}"
    # Tag image
    docker tag $COMPONENT:centos$VERSION $COMPONENT:centos.$VERSION
    docker tag $COMPONENT:centos$VERSION $COMPONENT:centos.$VERSION.$(date +%Y%m%d)
    docker tag $COMPONENT:centos$VERSION $COMPONENT:el$VERSION
    # Push image
    docker push $COMPONENT:centos$VERSION
    docker push $COMPONENT:centos.$VERSION
    docker push $COMPONENT:centos.$VERSION.$(date +%Y%m%d)
    docker push $COMPONENT:el$VERSION
  done
  echo 'Push has been completed!'

Amazon Linux

Build images
# Specify build versions
VERSIONS=("2023" "2" "1")
# Define whether to enable China mirror source. (Very useful for Chinese users)
CHINA_MIRROR=0  # Setting this variable to non-zero means enabling

for VERSION in "${VERSIONS[@]}"
do
  echo "Building version: ${VERSION}"
  # Build docker image
  docker build \
         -t $COMPONENT:amazonlinux$VERSION \
         --build-arg VERSION_NUM=$VERSION \
         --build-arg CHINA_MIRROR=$CHINA_MIRROR \
         -f docker/Dockerfile.amazonlinux .
done
echo 'The building has been completed!'
Push images
# Specify build versions
VERSIONS=("2023" "2" "1")

for VERSION in "${VERSIONS[@]}"
do
  echo "Pushing version: ${VERSION}"
  # Tag image
  docker tag $COMPONENT:amazonlinux$VERSION $COMPONENT:amazonlinux.$VERSION
  docker tag $COMPONENT:amazonlinux$VERSION $COMPONENT:amazonlinux.$VERSION.$(date +%Y%m%d)
  docker tag $COMPONENT:amazonlinux$VERSION $COMPONENT:amzn$VERSION
  docker tag $COMPONENT:amazonlinux$VERSION $COMPONENT:al$VERSION
  # Push image
  docker push $COMPONENT:amazonlinux$VERSION
  docker push $COMPONENT:amazonlinux.$VERSION
  docker push $COMPONENT:amazonlinux.$VERSION.$(date +%Y%m%d)
  docker push $COMPONENT:amzn$VERSION
  docker push $COMPONENT:al$VERSION
done
echo 'Push has been completed!'

Use image

Single OS

# Specify the name of tag.
IMAGE_TAG="amzn2023"
# Specify output path
OUT_PATH="$PWD"

mkdir -p $OUT_PATH

# Start container
docker run -it --rm \
       -v $OUT_PATH:/data/$IMAGE_TAG/RPMS \
       $COMPONENT:$IMAGE_TAG

Multi OS

# Specify output path
OUT_PATH="$PWD"

# Specify the name of tags.
IMAGE_TAGS=("amzn2023" "amzn2" "amzn1" "el7" "el6" "el5")

for IMAGE_TAG in "${IMAGE_TAGS[@]}"
do
  # Start container
  docker run -it --rm \
         -v $OUT_PATH:/data/$IMAGE_TAG/RPMS \
         $COMPONENT:$IMAGE_TAG
done