J'essaye de mettre en place phpserver via docker-compose. J'ai mis 3 fichiers dans mon répertoire de travail.
.env docker-compose.yml Dockerfile
.env
ERROR: The Compose file '.\docker-compose.yml' is invalid because: services.web.working_dir contains an invalid type, it should be a string services.composer.volumes contains an invalid type, it should be a string services.web.volumes contains an invalid type, it should be a string services.db.volumes contains an invalid type, it should be a string
docker-compose.yml
version: '3'
docker-compose up --build
et Dockerfile
FROM php:7.2-apache RUN docker-php-ext-install \ pdo_mysql \ && a2enmod rewrite
Mais après avoir essayé d'exécuter
services: web: build: . environment: - APACHE_RUN_USER=www-data volumes: - ${APP_PATH_HOST}: ${APP_PATH_CONTAINER} ports: - 8080:80 working_dir: - ${APP_PATH_CONTAINER} db: image: mariadb restart: always environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} volumes: - ${DB_PATH_HOST}: /var/lib/mysql adminer: image: adminer restart: always ports: - 6080:8080 composer: image: composer:1.7 volumes: - ${APP_PATH_HOST}: ${APP_PATH_CONTAINER} working_dir: ${APP_PATH_CONTAINER} command: composer install
j'ai le problème
##PATHS DB_PATH_HOST=./databases APP_PATH_HOST=./blog APP_PATH_CONTAINER=/var/www/html/ MYSQL_ROOT_PASSWORD=123456
J'ai essayé de changer la version du fichier docker-compose en 2 - ne fonctionne pas J'ai essayé d'utiliser le même problème "" et "".
Je veux exécuter mon serveur avec succès.
3 Réponses :
version: "3.3" services: web: build: . environment: - APACHE_RUN_USER=www-data volumes: - "${APP_PATH_HOST}: ${APP_PATH_CONTAINER}" ports: - 8080:80 working_dir: ${APP_PATH_CONTAINER} db: image: mariadb restart: always environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} volumes: - "${DB_PATH_HOST}:/var/lib/mysql" adminer: image: adminer restart: always ports: - 6080:8080 composer: image: composer:1.7 volumes: - "${APP_PATH_HOST}: ${APP_PATH_CONTAINER}" working_dir: ${APP_PATH_CONTAINER} command: composer install What you used for working_dir was a list. It needed a string.
Comme je suis triste avant d'utiliser "" mais le problème n'a pas disparu.
Utilisez la version dans ma réponse exactement comme elle est. Cela fonctionne et votre problème disparaîtra
Je souhaite me connecter d'administrateur à postgres version: '3'
SQLSTATE[08006] [7] FATAL: password authentication failed for user "root"
et j'ai l'erreur suivante.
services: web: build: . environment: - APACHE_RUN_USER=www-data volumes: - ./blog:/var/www/html/ ports: - 8080:80 working_dir: /var/www/html/ db: image: postgres restart: always environment: POSTGRES_PASSWORD: kisphp POSTGRES_USER: root POSTGRES_DB: kisphp ports: - "5432:5432" volumes: - ./postgres:/var/lib/postgresql/data adminer: image: adminer restart: always ports: - "6080:8080"
Ce n’est pas vraiment une réponse. Peut-être pouvez-vous poser une nouvelle question? et vous devriez également donner plus de détails sur l'erreur: quand exactement cela se produit-il par exemple. Je vois que vous définissez votre mot de passe ROOT à un seul endroit pour la base de données. Où le définissez-vous pour l'application qui se connecte à la base de données?
Je remarque maintenant que vous avez également changé la base de données :) Veuillez poser une question différente avec ces données
Les deux formats suivants fonctionnent:
Format # 1
environment: - MYSQL_ROOT_PASSWORD=rootpassword
Format # 2
environment: MYSQL_ROOT_PASSWORD: rootpassword