如何解决无法在 docker macos 中运行 magento2.3.5 项目
我在 macOS 中有一个本地 magento2.3.5 项目文件夹。当我运行 docker-compose up setup 时,它会抛出以下错误。
db_1 | Version: '10.0.38-MariaDB-1~xenial' socket: '/var/run/mysqld/mysqld.sock' port: 3306 mariadb.org binary distribution
setup_1 | [13-Feb-2021 07:27:50] NOTICE: fpm is running,pid 1
setup_1 | [13-Feb-2021 07:27:50] NOTICE: ready to handle connections
php-fpm_1 | Could not open input file: /var/www/html/update/cron.php
php-fpm_1 | Could not open input file: /var/www/html/bin/magento-php
php-fpm_1 | Could not open input file: /var/www/html/bin/magento-php
php-fpm_1 | Could not open input file: /var/www/html/bin/magento-php
php-fpm_1 | Could not open input file: /var/www/html/bin/magento-php
php-fpm_1 | Could not open input file: /var/www/html/update/cron.php
php-fpm_1 | Could not open input file: /var/www/html/bin/magento-php
php-fpm_1 | Could not open input file: /var/www/html/bin/magento-php
php-fpm_1 | Could not open input file: /var/www/html/update/cron.php
php-fpm_1 | Could not open input file: /var/www/html/bin/magento-php
php-fpm_1 | Could not open input file: /var/www/html/bin/magento-php
php-fpm_1 | Could not open input file: /var/www/html/update/cron.php
im using dinghy up 我按照本文中的所有说明进行操作 https://markshust.com/2015/07/15/magento-2-development-docker-os-x/。 唯一的区别是我不需要从 composer 下载 magento2 而是应该使用我本地的 magento2.3.5 项目文件夹。我将所有项目文件复制到 src/ 文件夹中。我创建了一个 Dockerfile 如下
FROM mageinferno/magento2-php:7.1-fpm-0
MAINTAINER a <ao@a.com>
ADD ./m2setup1.sh /usr/local/bin/
RUN ["chmod","+x","/usr/local/bin/m2setup1.sh"]
m2setup1.sh
#!/bin/sh
echo "Initializing setup..."
chmod +x /src/bin/magento
if [ -f /src/app/etc/config.php ] || [ -f /src/app/etc/env.php ]; then
echo "Already installed? Either app/etc/config.php or app/etc/env.php exist,please remove both files to continue setup."
exit
fi
echo "Running Magento 2 setup script..."
/src/bin/magento setup:install \
--db-host=$M2SETUP_DB_HOST \
--db-name=$M2SETUP_DB_NAME \
--db-user=$M2SETUP_DB_USER \
--db-password=$M2SETUP_DB_PASSWORD \
--base-url=$M2SETUP_BASE_URL \
--admin-firstname=$M2SETUP_ADMIN_FIRSTNAME \
--admin-lastname=$M2SETUP_ADMIN_LASTNAME \
--admin-email=$M2SETUP_ADMIN_EMAIL \
--admin-user=$M2SETUP_ADMIN_USER \
--admin-password=$M2SETUP_ADMIN_PASSWORD \
$M2SETUP_USE_SAMPLE_DATA_STRING
echo "Reindexing all indexes..."
/src/bin/magento indexer:reindex
echo "Applying ownership & proper permissions..."
sed -i 's/0770/0775/g' /src/vendor/magento/framework/Filesystem/DriverInterface.php
sed -i 's/0660/0664/g' /src/vendor/magento/framework/Filesystem/DriverInterface.php
find pub -type f -exec chmod 664 {} \;
find pub -type d -exec chmod 775 {} \;
find /src/var/generation -type d -exec chmod g+s {} \;
chown -R magento:www-data /src
echo "The setup script has completed execution."
要将我的 Dockerfile 附加为图像,我运行以下命令
docker build -t groot .
docker tag groot:latest groot:staging
并将其放入如下安装容器中
docker-compose.yml
app:
image: mageinferno/magento2-nginx:1.9
links:
- php-fpm
- db
volumes_from:
- appdata
environment:
- VIRTUAL_HOST=myproject.docker
appdata:
image: tianon/true
volumes:
- ./src:/src
- ~/.composer:/root/.composer
"php-fpm":
image: mageinferno/magento2-php:7.1-fpm-0
links:
- db
volumes_from:
- appdata
db:
image: mariadb:10.0
ports:
- "8001:3306"
volumes_from:
- dbdata
environment:
- MYSQL_ROOT_PASSWORD=magento2
- MYSQL_DATABASE=magento2
- MYSQL_USER=magento2
- MYSQL_PASSWORD=magento2
dbdata:
image: tianon/true
volumes:
- /var/lib/mysql
setup:
image: groot:staging
links:
- db
volumes_from:
- appdata
environment:
- M2SETUP_DB_HOST=db
- M2SETUP_DB_NAME=magento2
- M2SETUP_DB_USER=magento2
- M2SETUP_DB_PASSWORD=magento2
- M2SETUP_BASE_URL=http://myproject.docker/
- M2SETUP_ADMIN_FIRSTNAME=Admin
- M2SETUP_ADMIN_LASTNAME=User
- M2SETUP_ADMIN_EMAIL=dummy@gmail.com
- M2SETUP_ADMIN_USER=magento2
- M2SETUP_ADMIN_PASSWORD=magento2
- M2SETUP_USE_SAMPLE_DATA=true
文件夹结构:
.
├── docker-compose.yml
└── Dockerfile
└── m2setup1.sh
└── src
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。