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