Use alpine:3.22 instead of alpine:edge
The edge version can be broken, as it appears to be currently.
We're seeing an OpenSSL version mismatch error when using
alpine:edge.
With alpine:3.22, the error goes away.
Example error: https://ops.gitlab.net/gitlab-org/merge-train/-/jobs/20389319
$ bash /app/bin/merge-train security
>>> [2025-09-22 12:28:00] SOURCE_PROJECT: gitlab-org/gitlab
>>> [2025-09-22 12:28:00] SOURCE_BRANCH: master
>>> [2025-09-22 12:28:00] TARGET_PROJECT: gitlab-org/security/gitlab
>>> [2025-09-22 12:28:00] TARGET_BRANCH: master
>>> [2025-09-22 12:28:00] Configuring SSH for GitLab CI
OpenSSL version mismatch. Built against 3050003f, you have 30300020
OpenSSL version mismatch. Built against 3050003f, you have 30300020
Related to gitlab-com/gl-infra/production#20585 (closed) and https://gitlab.com/gitlab-com/gl-infra/delivery/-/issues/20491
Tests
With the current image:
✗ docker run -it registry.ops.gitlab.net/gitlab-org/merge-train:latest /bin/bash
debf53e10e4a:/app# SSH_PRIVATE_KEY='fgdfgdf' SSH_PUBLIC_KEY='asdasd' CI='true' bin/merge-train
>>> [2025-09-22 12:43:56] SOURCE_PROJECT: gitlab-org/gitlab
>>> [2025-09-22 12:43:56] SOURCE_BRANCH: master
>>> [2025-09-22 12:43:56] TARGET_PROJECT: gitlab-org/gitlab-foss
>>> [2025-09-22 12:43:56] TARGET_BRANCH: master
>>> [2025-09-22 12:43:56] Configuring SSH for GitLab CI
OpenSSL version mismatch. Built against 3050003f, you have 30300020
OpenSSL version mismatch. Built against 3050003f, you have 30300020
With the new image:
✗ docker build . -t merge-train:mine
[+] Building 1.8s (13/13) FINISHED docker:default
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 444B 0.0s
=> [internal] load metadata for docker.io/library/alpine:3 1.4s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 93B 0.0s
=> [1/8] FROM docker.io/library/alpine:3@sha256:4bcff63911fcb4448bd4fdacec207030997caf 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 18.03kB 0.0s
=> CACHED [2/8] WORKDIR /app 0.0s
=> CACHED [3/8] RUN mkdir -p /root/.ssh 0.0s
=> CACHED [4/8] RUN chmod 700 /root/.ssh 0.0s
=> CACHED [5/8] COPY config/known_hosts /root/.ssh/known_hosts 0.0s
=> CACHED [6/8] RUN apk add --update git openssh bash git-lfs 0.0s
=> CACHED [7/8] RUN git config --global user.name 'GitLab Bot' && git config --glo 0.0s
=> [8/8] ADD . /app/ 0.1s
=> exporting to image 0.1s
=> => exporting layers 0.1s
=> => writing image sha256:3d1ac3b698e78109cafa30a0289da56cc838e6c0ec6a525962d36100c42 0.0s
=> => naming to docker.io/library/merge-train:mine 0.0s
✗ docker run -it merge-train:mine /bin/bash
432e927e73f6:/app# SSH_PRIVATE_KEY='fgdfgdf' SSH_PUBLIC_KEY='asdasd' CI='true' bin/merge-train
>>> [2025-09-22 12:45:59] SOURCE_PROJECT: gitlab-org/gitlab
>>> [2025-09-22 12:45:59] SOURCE_BRANCH: master
>>> [2025-09-22 12:45:59] TARGET_PROJECT: gitlab-org/gitlab-foss
>>> [2025-09-22 12:45:59] TARGET_BRANCH: master
>>> [2025-09-22 12:45:59] Configuring SSH for GitLab CI
Agent pid 18
Error loading key "/root/.ssh/merge_train": error in libcrypto
Edited by Reuben Pereira