[Docker] — Fix: standard_init_linux.go:207: exec user process caused “no such file or directory”

Ao criar recentemente uma imagem usando o Docker para Windows, me deparei com alguns erros vagos. Procurando online pelas mensagens de erro, não havia soluções. Mas, felizmente, algumas sugestões me colocaram no caminho certo.
Neste post eu descrevo as soluções que encontrei.

O Dockerfile utilizado é baseado em node (node:6.11-slim) e adiciona vários arquivos shellscript que executavam no ubuntu, porem quando executados no windows ele expunha o erro seguinte: standard_init_linux.go:207: exec user process caused “no such file or directory”, após varias pesquisas encontrei esse artigo que explica que a configuração de fim de linha de sequência estava: CRLF, após alterar para LF conforme a imagem abaixo (VSCODE):

Alterar a configuração CRLF para o LF

Após alterar essa configuração e rodar o docker compose o contêiner expôs outro erro standard_init_linux.go:207: exec user process caused “exec format error”, diante disso alterei o tipo do arquivo de UTF8 para o ISO-8859–15 conforme a imagem acima também (opção Save with Encoding).

Mesmo assim o erro continuava e percebi que no inicio do shellscript tinha a configuração de bash (#!/bin/bash) e em algumas pesquisa citaram que mudando para (#!/bin/sh) é reconhecido pela imagem do node.

Caso tenham scripts que chamam scripts todos os arquivos devem seguir a mesma configuração senão o erro ocorrerá sem especificar qual arquivo está apresentando o problema.

Depois dessas configurações a o contêiner subiu normalmente, todas as alterações fazem sentido diante da mudança do ambiente do SO, repito os arquivos da forma original rodavam no ubuntu.

Leave a Reply