Am două containere în grupul meu de containere pe Azure folosind Azure Container Instances (ACI), unul (container A) expunând porturi 80
și 443
pe internet (reverse proxy), celălalt (containerul B) rulând de asemenea pe port 80
. Cum cartografiez portul containerului B 80
într-un alt port, să zicem 8080
, pentru ca cele două containere să nu se ciocnească de porturile pornite gazdă locală
(pe Azure, containerele din interiorul unui grup de containere pot ajunge între ele prin localhost)?
Nu pot folosi 8080:80
pentru că trebuie să fie un număr și nu văd altă modalitate de a specifica acest lucru. Dacă specific port 80
pe containerul A, proxy-ul invers se realizează doar pe el însuși, în esență, proxy-ul invers (în mod normal, portul containerului B) 80
ar fi accesibil pe localhost)
Exemplu:
resursă „azurerm_container_group” „main_containers” {
nume = „grup de containere”
locație = var.locație
nume_grup_resurse = var.rg_name
ip_address_type = „public”
dns_name_label = local.dns_name_label
os_type = "Linux"
restart_policy = „Întotdeauna”
tags = var.tags
container {
nume = "nextcloud"
imagine = "nextcloud"
CPU = "0,8"
memorie = "0,8"
variabile_de mediu = {
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
}
secure_environment_variables = {
MYSQL_PASSWORD = azurerm_mariadb_server.nextcloud_database.administrator_login_password
}
volum {
nume = azurerm_storage_share.nextcloud_storage_nextcloud_data_share.name
mount_path = "/var/www/html"
stocare_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
}
porturi {
# Asta vreau să fac, dar nu reușește cu:
# Valoare neadecvată pentru atributul „port”: este necesar un număr.
port = "8080:80"
protocol = "TCP"
}
}
container {
nume = "reverse-proxy-https"
imagine = "caddy"
CPU = "0,2"
memorie = "0,2"
comenzi = [
„caddy”, „reverse-proxy”,
„-from”, local.public_domain_name,
# aici aș spune să reverse-proxy la 8080
„-to”, „localhost:8080”,
]
porturi {
port = 80
protocol = "TCP"
}
porturi {
port = 443
protocol = "TCP"
}
volum {
nume = azurerm_storage_share.nextcloud_storage_caddy_data_share.name
mount_path = "/data/caddy"
stocare_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
}
volum {
nume = azurerm_storage_share.nextcloud_storage_caddy_config_share.name
mount_path = "/config/caddy"
stocare_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
}
}
}