J’essaie de lancer le projet dans (au moyen de) docker. Il fonctionne correctement sur les serveurs Unix. J’utilise Windows sur ma machine locale.
La structure du projet ressemble à ceci:
contenu docker-compose.yml
:
version: '3' services: sftp: image: atmoz/sftp restart: on-failure command: missftp:missftp:::destWorking,destRejected,destSuccess,attachments mailer: image: mailhog/mailhog ports: - 8025:8025 - 1025:1025 restart: on-failure mongo: image: mongo restart: on-failure mongo-express: image: mongo-express restart: on-failure ports: - 8081:8081 environment: - ME_CONFIG_MONGODB_SERVER=mongo - ME_CONFIG_BASICAUTH_USERNAME=admin - ME_CONFIG_BASICAUTH_PASSWORD=1234 data-service: build: context: . dockerfile: Dockerfile.data-service ports: - 8801:8801 - 8802:8802 restart: on-failure volumes: - /opt/app/mis/attachments:/attachments environment: - SPRING_DATA_MONGODB_HOST=mongo - SPRING_MAIL_HOST=mailer - SPRING_MAIL_USERNAME=apikey - SPRING_MAIL_PASSWORD=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 - SPRING_MAIL_PORT=465 ... upload-service: build: context: . dockerfile: Dockerfile.upload-service ports: - 8082:8082 - 8083:8083 restart: on-failure environment: - SPRING_DATA_MONGODB_HOST=mongo ...
Dockerfile.data-service
fichier Dockerfile.data-service
:
FROM gradle:alpine COPY / ./ RUN gradle build ENTRYPOINT java -jar ./mis-data-service/build/libs/mis-data-service-0.1.jar
Ensuite, j’exécute la commande suivante:
docker-compose -f docker-compose.yml up
résultat:
Building data-service Step 1/4 : FROM gradle:alpine ---> f438b7d58d0a Step 2/4 : COPY / ./ ---> Using cache ---> b72d0e76b86c Step 3/4 : RUN gradle build ---> Running in 7ba780a524e5 FAILURE: Build failed with an exception. * What went wrong: Failed to load native library 'libnative-platform.so' for Linux amd64. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org ERROR: Service 'data-service' failed to build: The command '/bin/sh -c gradle build' returned a non-zero code: 1
Qu’est-ce que je me trompe? Comment corriger cette erreur?
J’utilise Gradle 4.6
Voir https://stackoverflow.com/a/39345276/372019 :
S’il vous plaît append la commande suivante dans votre fichier Dockerfile avant la commande RUN gradle build
:
RUN apk add --no-cache libstdc++
Il semble y avoir plusieurs problèmes liés à github, mais ne mentionnant pas explicitement l’hôte Windows
Certaines des choses que les gens ont mentionnées ont résolu le problème pour eux:
chmod 000 $GRADLE_USER_HOME
--privileged
flag Dockerfile pour exécuter en tant que root:
FROM gradle:alpine USER root