Docker / bin / sh introuvable avec le fichier go binaire

flybox:

Servi de nombreuses pages et forums et n'a pas trouvé de solution. J'ai le simple conteneur de docker avec le fichier exécutable .sh. Lorsque je le construis et l'exécute à partir de Windows, tout va bien. Essayez maintenant de le construire à partir d'Ubuntu 18.04 avec la version 19.03.5 de Docker.

Pour la reconstruction, utilisez le script .sh que j'exécute en tant que bash install.sh

go build -o main.sh ./main

docker stop stats
docker container rm stats
docker image rm stats
docker build -t stats .
docker run --name stats -p 8080:8080 stats

Mon Dockerfile est:

FROM alpine:3.10.1

ARG appPath="app"

RUN mkdir /app/
COPY main.sh /app/main.sh
RUN chmod +x /app/main.sh
COPY resources  /app/resources

RUN apk add --no-cache bash
WORKDIR /app

EXPOSE 8080
CMD /bin/bash -c 'ls' && /app/main.sh dev

L'appel de sortie 'install' est le suivant:

bash install.sh
stats
stats
Untagged: stats:latest
Sending build context to Docker daemon  38.98MB
Step 1/10 : FROM alpine:3.10.1
 ---> b7b28af77ffe
Step 2/10 : ARG appPath="app"
 ---> Using cache
 ---> 08baa7336701
Step 3/10 : RUN mkdir /app/
 ---> Using cache
 ---> fb9870e78322
Step 4/10 : COPY main.sh /app/main.sh
 ---> Using cache
 ---> 79bf713855e3
Step 5/10 : RUN chmod +x /app/main.sh
 ---> Using cache
 ---> 88bf70f9c6ec
Step 6/10 : COPY resources  /app/resources
 ---> Using cache
 ---> 2ebf95627a9e
Step 7/10 : RUN apk add --no-cache bash
 ---> Using cache
 ---> 39cd823e7f2f
Step 8/10 : WORKDIR /app
 ---> Using cache
 ---> 37e6fcea2d65
Step 9/10 : EXPOSE 8080
 ---> Using cache
 ---> 4250094c65f6
Step 10/10 : CMD /bin/bash -c 'ls' && /app/main.sh dev
 ---> Using cache
 ---> ed41a1efb15b
Successfully built ed41a1efb15b
Successfully tagged stats:latest
main.sh
resources
/bin/sh: /app/main.sh: not found

Je ne comprends pas ce qui ne va pas. main.sh est là. Si j'essaie d'exécuter, CMD /bin/bash -c 'ls' && bash main.sh devrecevez main.sh: main.sh: cannot execute binary file.

Quel est le problème et comment puis-je y remédier?

UPD:

Le fichier a été renommé comme étant binaire et ne devrait pas avoir .sh à la fin.

Et réessayé avec ce qui suit:

install.sh

#!/bin/bash
go build -o myapp ./main

docker stop stats
docker container rm stats
docker image rm stats
docker build -t stats .
docker run --name stats -p 8080:8080 stats

Dockerfile

FROM alpine:3.10.1

RUN mkdir /app/
COPY myapp /app/myapp
RUN chmod +x /app/myapp
COPY resources  /app/resources

RUN apk add --no-cache bash
WORKDIR /app

EXPOSE 8080
CMD /bin/bash -c 'ls' && ./myapp dev

La sortie était la suivante:

....    
Step 9/9 : CMD /bin/bash -c 'ls' && ./myapp dev
 ---> Running in 52fc24d26747
Removing intermediate container 52fc24d26747
 ---> 8d4f415e6dcd
Successfully built 8d4f415e6dcd
Successfully tagged stats:latest
myapp
resources
/bin/sh: ./myapp: not found

Essayé /app/myapp, ./myappet cela ne fonctionne pas.

tripleee:

Je suppose que le message d'erreur est trompeur et que le vrai problème est qu'une bibliothèque ou un autre composant d'exécution Go est absent de votre image Docker. Essayez de créer votre application de manière statique (ce qui signifie que tout ce dont elle a besoin sera regroupé dans le binaire).

CGO_ENABLED=0 go build -o myapp ./main

(Et oui, ne l'appelez pas main.shsi ce n'est pas un script shell. Unix s'en fiche, mais vous déroutez vos lecteurs humains. Et en fait, ne l'appelez pas ainsi même si c'est le cas. Vous n'avez pas besoin de savoir s'il greps'agit d'un binaire, d'un script shell ou d'un programme Python; la même convention a du sens pour vos propres outils.)

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Docker - /bin/sh : nodemon : introuvable

Impossible d'exécuter le fichier binaire GO dans les conteneurs Docker avec Linux Runner

start terminal (sh) from execv return error: / bin / sh: / bin / sh: impossible d'exécuter le fichier binaire

dotnet docker / bin / sh: 1: [dotnet ,: introuvable

Impossible d'exécuter un programme go dans docker / bin / sh: <program>: introuvable

Le texte binaire est introuvable dans un fichier binaire

Binaire Go installé introuvable dans le chemin sur Alpine Linux Docker

docker alpine / bin / sh script.sh introuvable

Fichier binaire Bitbake introuvable

Erreur Google Cloud Run : Invalid Command \"/bin/sh\": fichier introuvable lors du déploiement à partir de l'image Docker

/ bin / sh introuvable - spawnSync

Erreur d'image Docker: "/ bin / sh: 1: [python,: introuvable"

docker ubuntu / bin / sh: 1: locale-gen: introuvable

go build in docker: binaire inattendu dans / go / bin

Fichier .sh introuvable

Lire le fichier binaire avec Deno

Sh : fichier introuvable sur l'image Docker alpine

docker - sh: nodemon: introuvable

Erreur native React - react-native-xcode.sh: ligne 45: react-native: commande introuvable La commande / bin / sh a échoué avec le code de sortie 127

Comment écrire la commande docker avec /bin/sh et affecter le résultat à la variable ?

/bin/sh : 1 : compositeur : introuvable

/ bin / sh: @echo: commande introuvable

/ bin / sh: SET: commande introuvable

/ bin / sh: adb: commande introuvable

/ bin / sh: 1: gvm: introuvable

/ bin / sh: 1: gcloud: introuvable

/ bin / sh: cc: commande introuvable

startFabric.sh échoue avec la commande docker compose introuvable

Le script Docker COPY sh ne fonctionne pas (introuvable)

TOP liste

  1. 1

    Comment utiliser HttpClient avec TOUT cert ssl, quelle que soit la « mauvaise » est

  2. 2

    Comment afficher du texte au milieu de div avec une couleur d'arrière-plan différente?

  3. 3

    Résultat de l'échantillonneur JMeter : comprendre le temps de chargement, le temps de connexion et la latence

  4. 4

    Modbus Python Schneider PM5300

  5. 5

    Pourquoi Object.hashCode () ne suit pas la convention du code Java

  6. 6

    Comment faire une recherche partielle et obtenir un score pertinent dans Elasticsearch

  7. 7

    Existe-t-il un moyen de voir si mon bot est hors ligne ?

  8. 8

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  9. 9

    optimiser les opérations du serveur avec elasticsearch: traitement des filigranes de disque bas

  10. 10

    Comment changer la couleur de la police dans R?

  11. 11

    Autocomplete avec java, Redis, Recherche élastique, Mongo

  12. 12

    MasterService d'ElasticSearch prend trop de temps pour calculer l'état du cluster et lancer ProcessClusterEventTimeoutException

  13. 13

    Comment vérifier si un utilisateur spécifique a un rôle? Discord js

  14. 14

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  15. 15

    Comment analyser un hachage Ruby plat en un hachage imbriqué?

  16. 16

    Comment créer une nouvelle application dans Dropbox avec des autorisations complètes

  17. 17

    Quelque chose dans le cluster Elasticsearch 7.4 devient de plus en plus lent avec les délais de lecture de temps en temps

  18. 18

    Ajustement non linéaire avec R

  19. 19

    php ajouter et fusionner des données de deux tables

  20. 20

    Exporter la table de l'arborescence vers CSV avec mise en forme

  21. 21

    帶有 Spring Boot 和 Azure AD 的 KeyCloak

chaudétiquette

Archive