There’s a service that I want to use, however for reasons, it no longer has any builds available. Consequently, I am thinking of building it myself. How does one go about doing that and then afterwards, how do I get it up on Docker hub? Can I just create an account and upload?

  • TheOneCurly@lemm.ee
    link
    fedilink
    English
    arrow-up
    2
    ·
    6 months ago

    First, you’ll need to pick a base image. There are lots to choose from and what you choose will entirely depend on what this service is. NodeJS, python, php, java, etc, all have really solid base images that I would recommend working from. If none of those frameworks apply then you’ll need to work from an OS base image like debian or alpine. I highly recommend debian:stable-slim if you go this route.

    My recommendation is to then spin up a container of your base image and do the install of your service manually, taking careful notes of all your steps. If anything breaks, just blow it up and start again. Once you have all your steps you’ll need to convert that list into a Dockerfile. Go step by step and learn how to do each thing from the docs. Then you can build the image from the Dockerfile and upload to docker hub or anywhere else.

    • sabreW4K3OP
      link
      fedilink
      English
      arrow-up
      1
      ·
      6 months ago

      Really sorry to bother you again. Mind if I ask a couple basic questions?

        • sabreW4K3OP
          link
          fedilink
          English
          arrow-up
          1
          ·
          6 months ago

          Thank you so much. Okay. I’m trying to update an image that’s been depreciated. I figure all I have to do is update the Docker file and the rest should be simple.

          I want to do it on my Pi, but I don’t want to pollute my Pi with superfluous stuff. Is that a pipe dream? Everything seems to say yes, but I just need confirmation.

          If yes, I guess I need to create a new directory. If I create a new directory and then create the Docker file there, will it affect my image? Like do I need to match the directory name and image name?

          Sorry, these are super basic questions, but I always get super anxious before trying things. What I love about Docker is that I can always delete and start again and the fact that this doesn’t follow that is making me extra cautious.

          • TheOneCurly@lemm.ee
            link
            fedilink
            English
            arrow-up
            2
            ·
            edit-2
            6 months ago

            You can absolutely do this without polluting anything on your system.

            The directory name doesn’t matter, when you build the image you’ll specify a tag for it.

            The only thing to watch for is when you build the same tag name again, as you iterate on the Dockerfile changes, docker won’t remove the old image from your local registry. It will just untag it, so you might see several images called something like “<None>”. Remember to remove those every so often so you don’t fill up your Pi’s storage.

            Edit: Also Docker will keep a “build cache” for this stuff, which doesn’t really “pollute” anything but it does take up disk space. You can clean that up with docker builder prune, read this for all the usage info: https://docs.docker.com/reference/cli/docker/builder/prune/

            • sabreW4K3OP
              link
              fedilink
              English
              arrow-up
              2
              ·
              6 months ago

              I cannot thank you enough. Thank you so much!