所以我用这个例子:
https://github.com/mcmoe/mssqldocker
为了创建一个SQL Server映像并将其加载数据。我有几个运行容器时运行的sql脚本。
但是,在构建映像时,我开始出现此错误:
Step 7/9 : ENTRYPOINT ./entrypoint.sh ---> Running in c8c654f6a630 max depth exceeded
我不确定如何解决此问题,我重新启动了docker甚至更新了它。我读了约125层的书吗?谁能解释这个的原因和可能的解决方法?
我发现此命令可以运行:
docker history microsoft/mssql-server-linux:latest | wc -l 312
我的docker-compose yml:
version: "3" services: mssql: build: . image: 'microsoft/mssql-server-linux' ports: - '1433:1433' environment: - ACCEPT_EULA=Y - SA_PASSWORD=Abcgfgh123! volumes: - db_volume:/var/lib/mssql/data volumes: db_volume:
在image一个参数service的docker-compose.yml定义具有取决于是否存在双重含义build参数。
image
service
docker-compose.yml
build
如果没有build节,image则将其拉出并运行。
如果您有一个build节,image则将您的构建映像标记为该名称,然后运行。
通过命名已构建的映像microsoft/mssql-server-linux,这与FROM microsoft/mssql-server- linux您每次将构建都在其自身上分层的图像相同。
microsoft/mssql-server-linux
FROM microsoft/mssql-server- linux
原始构建始于“正式”版本,microsoft/mssql-server-linux但随后的每个构建都将从microsoft/mssql-server- linux附加的本地映像开始,直到最终达到存储驱动程序的最大层数。
microsoft/mssql-server- linux
对构建的所有图像使用自己的名称空间:
version: "3" services: mssql: build: . image: 'user3437721/mssql-server-linux'