Okteto部署Rasa聊天机器人遇Invalid compose name错误求助
问题
通过Docker+Okteto部署Rasa聊天机器人,此前运行正常,今日突然报错:
Invalid compose name: must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character
退出状态码1。已尝试将docker-compose.yaml重命名为docker-compose.yml、okteto-compose.yml,问题未解决。
相关配置文件如下:
docker-compose.yaml
version: '3.4' services: rasa-server: image: rasa-bot:latest working_dir: /app build: "./" restart: always volumes: - ./actions:/app/actions - ./data:/app/data command: bash -c "rm -rf .rasa/* && rasa train && rasa run --enable-api --cors \"*\" -p 5006" ports: - '5006:5006' networks: - all rasa-actions-server: image: rasa-bot:latest working_dir: /app build: "./" restart: always volumes: - ./actions:/app/actions command: bash -c "rasa run actions" ports: - '5055:5055' networks: - all networks: all: driver: bridge driver_opts: com.docker.network.enable_ipv6: "true"
Dockerfile
FROM python:3.7.13 AS BASE WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . CMD ["./bot.py"] RUN pip install --no-cache-dir --upgrade pip RUN pip install rasa==3.3.0 ADD config.yml config.yaml ADD domain.yml domain.yaml ADD credentials.yml credentials.yaml ADD endpoints.yml endpoints.yaml
okteto.yml
name: stubu4ewi autocreate: true image: okteto.dev/rasa-bot:latest command: bash volumes: - /root/.cache/pip sync: - .:/app forward: - 5006:5006 reverse: - 9000:9000
完整报错信息:
Found okteto manifest on /okteto/src/okteto.yml Unmarshalling manifest... Okteto manifest unmarshalled successfully Found okteto compose manifest on docker-compose.yaml Unmarshalling compose... x Invalid compose name: must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric characterexit status 1
解决方案
报错原因是Okteto校验Docker Compose项目名称时,发现名称不符合规则:必须由小写字母、数字或连字符组成,且首尾必须是字母或数字。
解决方法二选一:
方法1:修改项目所在目录名
Okteto默认会用当前目录名作为Compose项目名,如果你的目录名包含大写字母、下划线或其他特殊字符,改成符合规则的名称(比如rasa-bot-deployment)。方法2:在docker-compose.yml中显式指定项目名
在version字段下方添加name字段,指定符合规则的项目名,示例:version: '3.4' name: rasa-bot-deployment # 新增这一行,名称符合小写字母+连字符规则 services: # 原services内容保持不变
说明
之前运行正常可能是因为Okteto近期更新了对Compose项目名称的校验规则,现在严格执行命名规范导致报错。
内容的提问来源于stack exchange,提问作者Tim Lange
相关产品推荐
相关产品推荐

