Docker Compose报错:不允许使用dockerfile_inline属性,求解决方案
解决Docker Compose中
dockerfile_inline属性报错的问题 你遇到的报错是因为当前使用的Compose文件版本(version: "3")不支持dockerfile_inline属性——该特性是Compose Specification 2.4及以上版本才引入的,旧的3.x基础版本没有这个字段定义。
以下是两种可行的解决方法:
方法一:升级Compose文件版本
将Compose文件的版本升级到支持dockerfile_inline的版本(如3.8及以上,或者直接使用无版本的Compose Specification格式),修改后的配置如下:
# 方式1:使用Compose Specification(省略version字段) services: tomcat: container_name: tomcat build: context: . dockerfile_inline: | FROM tomcat:9.0.73-jdk11-corretto-al2 COPY example.war /var/local/tomcat/webapps/ ports: - "8080:8080"
或者保留版本字段:
# 方式2:指定支持的版本号(3.8及以上) version: "3.8" services: tomcat: container_name: tomcat build: context: . dockerfile_inline: | FROM tomcat:9.0.73-jdk11-corretto-al2 COPY example.war /var/local/tomcat/webapps/ ports: - "8080:8080"
方法二:改用单独的Dockerfile文件
如果不想升级Compose版本,可以把内联的Dockerfile内容提取为单独的文件:
- 在当前目录(与docker-compose.yml同目录)创建
Dockerfile文件,写入以下内容:
FROM tomcat:9.0.73-jdk11-corretto-al2 COPY example.war /var/local/tomcat/webapps/
- 修改docker-compose.yml的
build配置,移除dockerfile_inline,改用默认的Dockerfile:
version: "3" services: tomcat: container_name: tomcat build: . # 等价于指定context: .且dockerfile: Dockerfile ports: - "8080:8080"
如果你的Dockerfile文件名不是默认的Dockerfile,可以显式指定:
build: context: . dockerfile: 你的Docker文件名
内容的提问来源于stack exchange,提问作者eastwater
相关产品推荐
相关产品推荐

