Điểm:1

Làm cách nào để ánh xạ các cổng trong Azure Container Instances qua Terraform?

lá cờ ua

Tôi có hai vùng chứa trong nhóm vùng chứa của mình trên Azure bằng Azure Container Instances (ACI), một (vùng chứa A) hiển thị các cổng 80443 vào internet (proxy ngược), cái còn lại (thùng chứa B) cũng đang chạy trên cổng 80. Làm cách nào để ánh xạ cổng của vùng chứa B 80 đến một cổng khác, nói 8080, để hai vùng chứa không va chạm với các cổng trên máy chủ cục bộ (trên Azure, các vùng chứa bên trong nhóm vùng chứa có thể liên lạc với nhau qua máy chủ cục bộ)?

tôi không thể sử dụng 8080:80 bởi vì nó cần phải là một số và tôi không thấy cách nào khác để xác định điều này. Nếu tôi chỉ định cổng 80 trên vùng chứa A, proxy ngược chỉ lặp lại chính nó, về cơ bản là ủy quyền ngược proxy ngược (thông thường là cổng của vùng chứa B 80 sẽ có thể truy cập được trên máy chủ cục bộ)

Ví dụ:

tài nguyên "azurerm_container_group" "main_containers" {
  tên = "nhóm container"
  vị trí = var.location
  resource_group_name = var.rg_name
  ip_address_type = "công khai"
  dns_name_label = local.dns_name_label
  os_type = "Linux"
  restart_policy = "Luôn luôn"
  thẻ = var.tags

  thùng đựng hàng {
    tên = "đám mây tiếp theo"
    hình ảnh = "đám mây tiếp theo"
    CPU = "0,8"
    bộ nhớ = "0,8"

    môi trường_biến = {
      MYSQL_DATABASE = azurerm_mariadb_database.nextcloud_database_db.name
      MYSQL_USER = azurerm_mariadb_server.nextcloud_database.administrator_login
      MYSQL_HOST = azurerm_mariadb_server.nextcloud_database.fqdn
    }

    safe_environment_variables = {
      MYSQL_PASSWORD = azurerm_mariadb_server.nextcloud_database.administrator_login_password
    }

    âm lượng {
      tên = azurerm_storage_share.nextcloud_storage_nextcloud_data_share.name
      mount_path = "/var/www/html"
      storage_account_name = azurerm_storage_account.nextcloud_storage.name
      storage_account_key = azurerm_storage_account.nextcloud_storage.primary_access_key
      share_name = azurerm_storage_share.nextcloud_storage_nextcloud_data_share.name
    }

    cổng {
      # Đây là điều tôi muốn làm nhưng không thành công với:
      # Giá trị không phù hợp cho thuộc tính "cổng": bắt buộc phải nhập số.
      cổng = "8080:80"
      giao thức = "TCP"
    }
  }

  thùng đựng hàng {
    tên = "reverse-proxy-https"
    hình ảnh = "caddy"
    CPU = "0,2"
    bộ nhớ = "0,2"
    lệnh = [
      "caddy", "reverse-proxy",
      "-từ", local.public_domain_name,
      # đây là nơi tôi sẽ yêu cầu đảo ngược proxy thành 8080
      "-đến", "máy chủ cục bộ:8080",
    ]

    cổng {
      cổng = 80
      giao thức = "TCP"
    }

    cổng {
      cổng = 443
      giao thức = "TCP"
    }

    âm lượng {
      tên = azurerm_storage_share.nextcloud_storage_caddy_data_share.name
      mount_path = "/data/caddy"
      storage_account_name = azurerm_storage_account.nextcloud_storage.name
      storage_account_key = azurerm_storage_account.nextcloud_storage.primary_access_key
      share_name = azurerm_storage_share.nextcloud_storage_caddy_data_share.name
    }

    âm lượng {
      tên = azurerm_storage_share.nextcloud_storage_caddy_config_share.name
      mount_path = "/config/caddy"
      storage_account_name = azurerm_storage_account.nextcloud_storage.name
      storage_account_key = azurerm_storage_account.nextcloud_storage.primary_access_key
      share_name = azurerm_storage_share.nextcloud_storage_caddy_config_share.name
    }
  }
}

Simao Gomes Viana avatar
lá cờ ua
Điều này chỉ áp dụng cho **một số** hình ảnh: Bạn có thể sử dụng loại ổ đĩa `secret` để ghi đè lên các thư mục trong vùng chứa — ví dụ: `volume { secret = { "000-default.conf" = base64encode( ... EOT) } mount_path = "/etc/apache2/sites-enabled" }`. Điều này đang lạm dụng loại âm lượng `bí mật` – những gì nó thực sự làm là gắn các tệp "nội tuyến" vào vùng chứa. Điều này cho phép cấu hình dễ dàng mà không cần sửa đổi hình ảnh.
Simao Gomes Viana avatar
lá cờ ua
Phụ lục cho nhận xét trước: Cần lưu ý rằng đối với nextcloud, chỉ ghi đè 000-default.conf là không đủ. Bạn cần làm điều đó cho toàn bộ apache2.conf và điều đó có nghĩa là tất cả các tệp trong /etc/apache2. Có thể làm được, nhưng gây phiền nhiễu.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.