Docker生成步骤名称不能以数字开头

Docker生成步骤名称不能以数字开头,docker,dockerfile,Docker,Dockerfile,我正在为Sybase数据库构建docker映像Docker build命令失败,因为生成步骤“server”的名称不能以数字开头 我已经寻找了很多方法来更改构建步骤机器的名称,到目前为止,我的解决方案是重试构建,直到我得到一个以字母开头的名称 Step 1/7 : FROM my_image as docker_sybase_db ---> d266899b4eef Step 2/7 : COPY *.zip /mnt/backup/ ---> Using cache ---&

我正在为Sybase数据库构建docker映像
Docker build
命令失败,因为生成步骤“server”的名称不能以数字开头

我已经寻找了很多方法来更改构建步骤机器的名称,到目前为止,我的解决方案是重试构建,直到我得到一个以字母开头的名称

Step 1/7 : FROM my_image as docker_sybase_db
 ---> d266899b4eef
Step 2/7 : COPY *.zip /mnt/backup/
 ---> Using cache
 ---> 9e8e405848ce
Step 3/7 : COPY entrypoint.sh ~
 ---> Using cache
 ---> 5c0c923985db
Step 4/7 : ENV HOSTNAME docker_sybase_db
 ---> Using cache
 ---> f2b39a7280a0
Step 5/7 : RUN init_db.sh
 ---> Running in 0ae1a95b3203
Server name '0ae1a95b3203' begins with an illegal character.  The first
character of a server name must be an alphabetic ascii character.
Error running command 'srvbuild -r /tmp/my_super_build.rs': 
如果我不能修改这个旧的sybase init脚本,我在这里运气不好吗

编辑:以下是我想做的

  • 创建一个数据库实例
  • 加载备份
  • 将预加载的实例打包到容器中
  • 加载备份需要花费大量时间,而且这个旧的数据库系统要求服务器名称以字母开头,而不是数字。

    您可以尝试查看(在docker构建期间)是否适合您


    docker构建tee>((grep--line buffered-Po')(?init_db.sh内部是什么?我的意思是为什么您的脚本将docker层号作为服务器名称?是的,这是SAP发出的命令标准docker Hub数据库映像在实际容器运行之前不尝试设置数据库。您能将此步骤推迟到那时吗(如果尚未初始化,则使用入口点包装脚本进行初始化)?然后您可以
    docker run--hostname
    设置容器认为其主机名是什么。docker run--hostname是不可能的。我需要在映像构建中运行此步骤,因为它需要大约10分钟的预处理时间,我不想每次都这样做。我认为这对我不起作用,该命令需要同时对这两个操作都起作用windows、linux、TFS和azure devops管道。这将使许多不同的命令得到支持,我不认为我会使用这种方法。这是一种非常有创造性的方法,希望它对我有用!@a_V我在阅读您最初的问题时没有意识到这种多平台约束。不过,它应该在任何地方都有效,thr虽然Linux虚拟机在需要的地方。这对我不起作用,我不得不去编辑一些非常旧的遗留脚本来让它在我的端工作,但老实说,这是创造性的,足以让我接受答案。没有比这更好的了。