Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Jeffrey Girard edited this page Jun 29, 2025 · 7 revisions

Step 0: Setup

Github > Settings > Developer Settings > Personal access tokens > Tokens (classic)

echo <github-personal-access-token> | docker login ghcr.io -u <github-username> --password-stdin

Step 1: Build on Mac (Apple Silicon) for linux/arm64

VER="noble"
docker buildx build --platform linux/arm64 --load --no-cache -f ${VER}.Dockerfile -t jmgirard/rstudio2u:${VER}-arm64 .
docker push jmgirard/rstudio2u:${VER}-arm64
docker tag jmgirard/rstudio2u:${VER}-arm64 ghcr.io/jmgirard/rstudio2u:${VER}-arm64
docker push ghcr.io/jmgirard/rstudio2u:${VER}-arm64

Step 2: Build on Windows for linux/amd64

$VER = "noble"
docker build --no-cache -f "$VER.Dockerfile" -t "jmgirard/rstudio2u:$VER-amd64" .
docker push "jmgirard/rstudio2u:$VER-amd64"
docker tag "jmgirard/rstudio2u:$VER-amd64" "ghcr.io/jmgirard/rstudio2u:$VER-amd64"
docker push "ghcr.io/jmgirard/rstudio2u:$VER-amd64"
docker manifest rm "jmgirard/rstudio2u:$VER"
docker manifest create "jmgirard/rstudio2u:$VER" `
    "jmgirard/rstudio2u:$VER-amd64" `
    "jmgirard/rstudio2u:$VER-arm64"
docker manifest annotate "jmgirard/rstudio2u:$VER" "jmgirard/rstudio2u:$VER-amd64" --arch amd64
docker manifest annotate "jmgirard/rstudio2u:$VER" "jmgirard/rstudio2u:$VER-arm64" --arch arm64
docker manifest push "jmgirard/rstudio2u:$VER"
docker manifest rm "jmgirard/rstudio2u:latest"
docker manifest create "jmgirard/rstudio2u:latest" `
    "jmgirard/rstudio2u:$VER-amd64" `
    "jmgirard/rstudio2u:$VER-arm64"
docker manifest annotate "jmgirard/rstudio2u:latest" "jmgirard/rstudio2u:$VER-amd64" --arch amd64
docker manifest annotate "jmgirard/rstudio2u:latest" "jmgirard/rstudio2u:$VER-arm64" --arch arm64
docker manifest push "jmgirard/rstudio2u:latest"
docker manifest rm "ghcr.io/jmgirard/rstudio2u:$VER"
docker manifest create "ghcr.io/jmgirard/rstudio2u:$VER" `
    "ghcr.io/jmgirard/rstudio2u:$VER-amd64" `
    "ghcr.io/jmgirard/rstudio2u:$VER-arm64"
docker manifest annotate "ghcr.io/jmgirard/rstudio2u:$VER" "ghcr.io/jmgirard/rstudio2u:$VER-amd64" --arch amd64
docker manifest annotate "ghcr.io/jmgirard/rstudio2u:$VER" "ghcr.io/jmgirard/rstudio2u:$VER-arm64" --arch arm64
docker manifest push "ghcr.io/jmgirard/rstudio2u:$VER"
docker manifest rm "ghcr.io/jmgirard/rstudio2u:latest"
docker manifest create "ghcr.io/jmgirard/rstudio2u:latest" `
    "ghcr.io/jmgirard/rstudio2u:$VER-amd64" `
    "ghcr.io/jmgirard/rstudio2u:$VER-arm64"
docker manifest annotate "ghcr.io/jmgirard/rstudio2u:latest" "ghcr.io/jmgirard/rstudio2u:$VER-amd64" --arch amd64
docker manifest annotate "ghcr.io/jmgirard/rstudio2u:latest" "ghcr.io/jmgirard/rstudio2u:$VER-arm64" --arch arm64
docker manifest push "ghcr.io/jmgirard/rstudio2u:latest"