Docker 我试图在入门教程中使用我的个人MySQL数据库,但我无法做到这一点
首先,在寻找可能的解决方案时,我修改了该差异文件中所述的项目文件:Docker 我试图在入门教程中使用我的个人MySQL数据库,但我无法做到这一点,docker,api-platform.com,Docker,Api Platform.com,首先,在寻找可能的解决方案时,我修改了该差异文件中所述的项目文件: diff --git a/api/.env b/api/.env index 93e0327..3aba6a4 100644 --- a/api/.env +++ b/api/.env @@ -13,7 +13,7 @@ TRUSTED_HOSTS=localhost,api # Format described at http://docs.doctrine-project.org/projects/doctrine-dba
diff --git a/api/.env b/api/.env
index 93e0327..3aba6a4 100644
--- a/api/.env
+++ b/api/.env
@@ -13,7 +13,7 @@ TRUSTED_HOSTS=localhost,api
# Format described at http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
# Configure your db driver and server_version in config/packages/doctrine.yaml
-DATABASE_URL=postgres://api-platform:!ChangeMe!@db/api
+DATABASE_URL=mysql://api-platform:!ChangeMe!@db:3306/api
###< doctrine/doctrine-bundle ###
###> nelmio/cors-bundle ###
diff --git a/api/Dockerfile b/api/Dockerfile
index 588cdaf..14024aa 100644
--- a/api/Dockerfile
+++ b/api/Dockerfile
@@ -29,7 +29,7 @@ RUN set -eux; \
docker-php-ext-configure zip --with-libzip; \
docker-php-ext-install -j$(nproc) \
intl \
- pdo_pgsql \
+ pdo_mysql \
zip \
; \
pecl install \
diff --git a/api/config/packages/doctrine.yaml b/api/config/packages/doctrine.yaml
index b4d82af..12c6352 100644
--- a/api/config/packages/doctrine.yaml
+++ b/api/config/packages/doctrine.yaml
@@ -8,11 +8,15 @@ parameters:
doctrine:
dbal:
# configure these for your database server
- driver: 'pdo_pgsql'
- server_version: '9.6'
-
- # With Symfony 3.3, remove the `resolve:` prefix
+ driver: 'pdo_mysql'
url: '%env(resolve:DATABASE_URL)%'
+ server_version: '5.7'
+ charset: utf8mb4
+ default_table_options:
+ charset: utf8mb4
+ collate: utf8mb4_unicode_ci
+ options:
+ 1002: 'SET sql_mode=(SELECT REPLACE(@@sql_mode,''ONLY_FULL_GROUP_BY'',''''))'
orm:
auto_generate_proxy_classes: '%kernel.debug%'
naming_strategy: doctrine.orm.naming_strategy.underscore
diff --git a/api/docker/php/docker-entrypoint.sh b/api/docker/php/docker-entrypoint.sh
index d737930..463a375 100755
--- a/api/docker/php/docker-entrypoint.sh
+++ b/api/docker/php/docker-entrypoint.sh
@@ -13,10 +13,6 @@ if [ "$1" = 'php-fpm' ] || [ "$1" = 'bin/console' ]; then
if [ "$APP_ENV" != 'prod' ]; then
composer install --prefer-dist --no-progress --no-suggest --no-interaction
- >&2 echo "Waiting for Postgres to be ready..."
- until pg_isready --timeout=0 --dbname="${DATABASE_URL}"; do
- sleep 1
- done
bin/console doctrine:schema:update --force --no-interaction
fi
fi
diff --git a/docker-compose.yml b/docker-compose.yml
index f88f9a6..d32e028 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,6 +1,17 @@
version: '3.4'
services:
+ db:
+ image: mysql:5.7
+ volumes:
+ - "./.data/db:/var/lib/mysql"
+ environment:
+ MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
+ MYSQL_DATABASE: ${MYSQL_DATABASE}
+ MYSQL_USER: ${MYSQL_USER}
+ MYSQL_PASSWORD: ${MYSQL_PASSWORD}
+ ports:
+ - 3306:3306
php:
image: ${CONTAINER_REGISTRY_BASE}/php
build:
@@ -55,21 +66,6 @@ services:
ports:
- "8081:80"
- db:
- # In production, you may want to use a managed database service
- image: postgres:9.6-alpine
- environment:
- - POSTGRES_DB=api
- - POSTGRES_USER=api-platform
- # You should definitely change the password in production
- - POSTGRES_PASSWORD=!ChangeMe!
- volumes:
- - db-data:/var/lib/postgresql/data:rw
- # You may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data!
- # - ./docker/db/data:/var/lib/postgresql/data:rw
- ports:
- - "5432:5432"
-
client:
# Use a static website hosting service in production
# See https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md#deployment
但是我得到了这个错误,我不知道如何修复它:
我一直遵循教程,直到它开始解释如何添加GraphSQL支持。
有人能帮我吗
$ sudo docker-compose pull
$ sudo docker-compose up -d
$ sudo docker-compose exec php bin/console doctrine:schema:update --force