Little bit of everything!

Avid Swiftie (come join us at !taylorswift@poptalk.scrubbles.tech )

Gaming (Mass Effect, Witcher, and too much Satisfactory)

Sci-fi

I live for 90s TV sitcoms

  • 24 Posts
  • 568 Comments
Joined 3 years ago
cake
Cake day: June 2nd, 2023

help-circle


  • Sure! I use Kaniko (Although I see now that it’s not maintained anymore). I’ll probably pull the image in locally to protect it…

    Kaniko does the Docker in Docker, and I found an action that I use, but it looks like that was taken down… Luckily I archived it! Make an action in Forgejo (I have an infrastructure group that I add public repos to for actions. So this one is called action-koniko-build and all it has is this action.yml file in it:

    name: Kaniko
    description: Build a container image using Kaniko
    inputs:
      Dockerfile:
        description: The Dockerfile to pass to Kaniko
        required: true
      image:
        description: Name and tag under which to upload the image
        required: true
      registry:
        description: Domain of the registry. Should be the same as the first path component of the tag.
        required: true
      username:
        description: Username for the container registry
        required: true
      password:
        description: Password for the container registry
        required: true
      context:
        description: Workspace for the build
        required: true
    runs:
      using: docker
      image: docker://gcr.io/kaniko-project/executor:debug
      entrypoint: /bin/sh
      args:
        - -c
        - |
          mkdir -p /kaniko/.docker
          echo '{"auths":{"${{ inputs.registry }}":{"auth":"'$(printf "%s:%s" "${{ inputs.username }}" "${{ inputs.password }}" | base64 | tr -d '\n')'"}}}' > /kaniko/.docker/config.json
          echo Config file follows!
          cat /kaniko/.docker/config.json
          /kaniko/executor --insecure --dockerfile ${{ inputs.Dockerfile }} --destination ${{ inputs.image }} --context dir://${{ inputs.context }}     
    

    Then, you can use it directly like:

    name: Build and Deploy Docker Image
    
    on:
      push:
        branches:
          - main
      workflow_dispatch:
    
    jobs:
      build:
        runs-on: docker
    
        steps:
        # Checkout the repository
        - name: Checkout code
          uses: actions/checkout@v3
    
        - name: Get current date # This is just how I label my containers, do whatever you prefer
          id: date
          run: echo "::set-output name=date::$(date '+%Y%m%d-%H%M')"
    
        - uses:  path.to.your.forgejo.instance:port/infrastructure/action-koniko-build@main # This is what I said above, it references your infrastructure action, on the main branch
          with:
            Dockerfile: cluster/charts/auth/operator/Dockerfile
            image: path.to.your.forgejo.instance:port/group/repo:${{ steps.date.outputs.date }}
            registry: path.to.your.forgejo.instance:port/v1
            username: ${{ env.GITHUB_ACTOR }}
            password: ${{ secrets.RUNNER_TOKEN }} # I haven't found a good secret option that works well, I should see if they have fixed the built-in token
            context: ${{ env.GITHUB_WORKSPACE }}
    

    I run my runners in Kubernetes in the same cluster as my forgejo instance, so this all hooks up pretty easy. Lmk if you want to see that at all if it’s relevant. The big thing is that you’ll need to have them be Privileged, and there’s some complicated stuff where you need to run both the runner and the “dind” container together.








  • I’ve lived long enough where I definitely see this as the reason.

    It starts with one person saying “hey wait, if we do this thing we waste a little less!”. Good intentions and idea. It grows and catches on. Companies see that and see the triple hitter: they can

    • reduce overhead costs by not doing the wasteful thing
    • go on a PR blitz making it look like they’re doing amazing things, people clapping all the way
    • continue charging the same amount.

    Happens all the time. Tipping is the best example. You feel bad for the driver or server so you tip a little more. Companies see this and make it easier for you to tip, saying they really value their workers and want to let you tell them. Meanwhile they do nothing for actual pay, screwing you and the employees at the same time.








  • Honestly think finally found common ground, and I appreciate the thought out response here. This is the sort of discussion and comment I want to see more of here on Lemmy, thought out good discussion instead of “He’s literally hitler”. That’s really the point I was trying to make, I don’t care about Bill Gates, what I am tired of is everyone demonizing everyone else in the comments and us devolving into reddit comment sections. We’ve been better than Reddit in our comments until recently.