• 1 Post
  • 2 Comments
Joined 3 years ago
cake
Cake day: August 6th, 2022

help-circle
  • Finally found someone who uses OpenTofu for Docker too. I saw many opinions and thinking that dropping Compose for OpenTofu/Terraform is silly, because Compose is “more native”. I use OpenTofu for Docker too, but I structured code in other way, I have a module that mimics compose in some way, but is simpler for me to use. I published module here: https://codeberg.org/cichy1173/cichyform

    I do not published my IaC, but I can show how code looks like for service:

    module "adguard" {
      source = "git::ssh://git@codeberg.org/cichy1173/mylab-opentofu.git//modules/docker_service?ref=docker_service-v1.1"
      service_name = "adguardhome"
      image_name   = "adguard/adguardhome:latest"
    
      volumes = [
        {
          host_path      = "/home/cichy/docker/adguard/adguard/conf"
          container_path = "/opt/adguardhome/conf"
        },
        {
          host_path      = "/home/cichy/docker/adguard/adguard/work"
          container_path = "/opt/adguardhome/work"
        }
      ]
      
      ports = [
        {
          internal = 53
          external = 53
          protocol = "udp"
        },
        {
          internal = 80
          external = 80
        },
        {
          internal = 443
          external = 443
        },
        {
          internal = 853
          external = 853
        },
        {
          internal = 3000
          external = 3000
        }
      ]
    
      environment_variables = []
    }
    

    I also created an Forgejo Action to run plan on stacks with this module to check if there is a new image under the tag :latest. Oh, and also I manage Adguard Home using OpenTofu, it is very powerful: https://codeberg.org/cichy1173/adguard-home-cm-repository