記一次docker-compose映射2222端口的坑


問題背景

使用docker-compose搭建基於gogs+MySQL的個人git倉庫,在映射2222:22端口的時候,報如下錯誤:

# ./docker-compose up -d
Creating network "gogs_default" with the default driver
Creating gogs_mysql_1 ... done
Creating gogs_gogs_1  ... error

ERROR: for gogs_gogs_1  Cannot create container for service gogs: invalid port specification: "133342"

ERROR: for gogs  Cannot create container for service gogs: invalid port specification: "133342"
ERROR: Encountered errors while bringing up the project.

其中docker-compose.yml部分配置如下:

services:
  gogs:
    ports:
      - 2222:22

問題原因

YAML 支持所謂的“以60為底的浮點數”,對時間計算很有用。因此2222:22被解釋為2222 * 60 + 22,即133342。如果port包含大於60的數字,例如3306:33068080:80,就沒有問題,因此不會總是發生此問題,從而使其隱蔽。

問題解決

使用雙引號即可,如下:

services:
  gogs:
    ports:
      - "2222:22"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM