Na etapa de build acontecia esse problema. Rastreei até encontrar o arquivo Dockerfile em app A solução foi incluir $ na linha abaixo
ARG JAR_FILE=target/*jar
Ficou assim:
ARG $JAR_FILE=target/*jar
Na etapa de build acontecia esse problema. Rastreei até encontrar o arquivo Dockerfile em app A solução foi incluir $ na linha abaixo
ARG JAR_FILE=target/*jar
Ficou assim:
ARG $JAR_FILE=target/*jar
Mas deu outro erro no docker-compose up Já vi essa dúvida não resolvida pelo forum também
Olá, Andre!
Parece que você encontrou um problema com o contexto de build no Docker e conseguiu resolver adicionando um $
na declaração ARG
no seu Dockerfile. A solução que você encontrou é interessante, mas na verdade a sintaxe correta para usar uma argumento no Dockerfile não inclui o $
na declaração do ARG
, mas sim quando você quer referenciar esse argumento em outras instruções do Dockerfile.
A declaração correta seria manter o ARG
como estava originalmente:
ARG JAR_FILE=target/*jar
E quando você quiser usar esse argumento, por exemplo, ao copiar o arquivo JAR para dentro da imagem, você usaria:
COPY ${JAR_FILE} app.jar
Neste caso, o ${JAR_FILE}
é substituído pelo valor que você passa durante o build, por exemplo:
docker build --build-arg JAR_FILE=target/meuapp.jar -t minha-imagem .
Em relaão ao erro da última imagem que você colocou na resposta:
O erro que aperece é "Invalid or corrupt jarFile /app.jar" indica que o arquivo JAR pode estar corrompido ou inválido. Para corrigir: