Recentemente, eu estava tentando inspecionar como esse contêiner funciona e, portanto, queria fazer o que normalmente faria para um contêiner em execução, principalmente:
$ docker exec -it <container SHA> /bin/bash
No entanto, neste cenário, não consigo nem quero configurar e executar totalmente esse contêiner específico. Eu apenas quero entrar em seu sistema de arquivos para que eu possa bisbilhotar e dar uma olhada em como ele é construído.
Esta é a execução com falha:
$ docker run prismagraphql/prisma:1.21 --name blah
Exception in thread "main" java.lang.RuntimeException: Unable to load Prisma config: java.lang.RuntimeException: No valid Prisma config could be loaded.
at scala.sys.package$.error(package.scala:27)
at com.prisma.config.ConfigLoader$.load(ConfigLoader.scala:40)
at com.prisma.local.PrismaLocalDependencies.<init>(PrismaLocalDependencies.scala:36)
at com.prisma.local.PrismaLocalMain$.delayedEndpoint$com$prisma$local$PrismaLocalMain$1(PrismaLocalMain.scala:14)
at com.prisma.local.PrismaLocalMain$delayedInit$body.apply(PrismaLocalMain.scala:11)
at scala.Function0.apply$mcV$sp(Function0.scala:34)
at scala.Function0.apply$mcV$sp$(Function0.scala:34)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
at scala.App.$anonfun$main$1$adapted(App.scala:76)
at scala.collection.immutable.List.foreach(List.scala:389)
at scala.App.main(App.scala:76)
at scala.App.main$(App.scala:74)
at com.prisma.local.PrismaLocalMain$.main(PrismaLocalMain.scala:11)
at com.prisma.local.PrismaLocalMain.main(PrismaLocalMain.scala)
Como posso fazer isso?
Um método para fazer isso é criar um novo commit do contêiner com falha e invocá-lo com um novo ponto de entrada.
Exemplo
Obter ID do contêiner
Crie um novo commit para este ID de contêiner
Insira a imagem do contêiner com um novo ponto de entrada
Agora pode inspecionar o script usado dentro do contêiner
Referências