在ACI中以Caddy为边车部署Seq遇启动异常,求正确端口配置
问题:Seq容器在Azure容器实例(ACI)中启动后快速终止,端口配置疑问
我使用Terraform在Azure容器实例(ACI)中部署两个容器,Caddy容器运行正常,但Seq(datalust/seq:latest)容器仅运行数秒后就进入“Waiting”状态并终止。将Seq替换为Rabbit MQ等其他镜像则无问题,请问Seq镜像应配置哪个端口?以下是我的Seq容器Terraform配置:
container { name = "seq-aci-container" image = "datalust/seq:latest" cpu = "1" memory = "1" ports { port = 5341 protocol = "TCP" } volume { name = "seq-aci-data" mount_path = "/data" storage_account_name = "seqacistorage" storage_account_key = "<QUnGu7Iz+4R...c728qLY7+AStEEElJg==>" share_name = "seq-aci-data" } environment_variables = { "ACCEPT_EULA" = "Y" "SEQ_API_CANONICALURI" = "http://seq-aci-dns.eastus.azurecontainer.io/" } }
解决方案
Seq容器默认需要暴露80端口(Web UI及核心API服务的默认端口),你当前仅配置了5341端口——这是Seq的日志摄入端口,用于接收外部日志数据,但并非Seq服务启动运行的必需端口。容器启动后终止,大概率是因为核心服务依赖的80端口未正确映射,导致进程无法正常初始化。
调整端口配置,添加80端口的TCP映射即可解决问题,同时保留5341端口用于日志接收。修改后的配置片段如下:
container { name = "seq-aci-container" image = "datalust/seq:latest" cpu = "1" memory = "1" # 添加Seq核心服务的80端口映射 ports { port = 80 protocol = "TCP" } # 保留日志摄入的5341端口 ports { port = 5341 protocol = "TCP" } volume { name = "seq-aci-data" mount_path = "/data" storage_account_name = "seqacistorage" storage_account_key = "<QUnGu7Iz+4R...c728qLY7+AStEEElJg==>" share_name = "seq-aci-data" } environment_variables = { "ACCEPT_EULA" = "Y" "SEQ_API_CANONICALURI" = "http://seq-aci-dns.eastus.azurecontainer.io/" } }
额外检查点:
- 确认Azure文件共享挂载的
/data目录有读写权限,Seq需要该目录存储配置及日志数据(默认read_only为false,无需额外配置,但可确认存储账户权限是否正常) - 当前1GB内存足够Seq基础运行,若后续日志量增大可考虑调整内存配置
内容的提问来源于stack exchange,提问作者rikuna
相关产品推荐
相关产品推荐

