我在使用Prestashop实时编辑代码时遇到了一些麻烦。
参考:https://github.com/mattiamari/docker-prestashop1.7-php7-fpm
version: '3.7'
services:
prestashop:
build:
context: prestashop
dockerfile: Dockerfile
args:
- PRESTASHOP_VERSION=1.7.6.2
environment:
PS_DOMAIN: "localhost:8081"
DB_SERVER: db
DB_PORT: "3306"
DB_USER: prestashop
DB_PASSWORD: prestashop
DB_NAME: prestashop
DB_CLEAR: '0'
DB_CREATE: '1'
DB_PREFIX: "ps_"
PS_DIR_INSTALL: install1234
PS_DIR_ADMIN: admin1234
PS_LANGUAGE: en
PS_TIMEZONE: "Europe/London"
PS_SHOP_NAME: "test shop"
PS_SHOP_COUNTRY: en
PS_FIRSTNAME: John
PS_LASTNAME: Doe
PS_PASSWORD: testshop123
PS_EMAIL: "[email protected]"
PS_NEWSLETTER: '0'
PS_SSL: '0'
PHP_MEMORY_LIMIT: 256M
PHP_MAX_EXECUTION_TIME: "200"
PHP_MAX_INPUT_TIME: "60"
expose:
- "9000"
volumes:
- app:/app
depends_on:
- db
restart: unless-stopped
web:
build: web
environment:
PS_DOMAIN: "localhost:8081"
PS_DIR_INSTALL: install1234
PS_DIR_ADMIN: admin1234
ports:
- "8081:80"
# - "443:443"
volumes:
- app:/app:rw
depends_on:
- prestashop
restart: unless-stopped
db:
image: mariadb:latest
environment:
MYSQL_ROOT_PASSWORD: supercow
MYSQL_DATABASE: prestashop
MYSQL_USER: prestashop
MYSQL_PASSWORD: prestashop
volumes:
- ./db/config:/etc/mysql/conf.d
- db-data:/var/lib/mysql
restart: unless-stopped
volumes:
app:
driver: local
driver_opts:
type: none
o: bind
device: ${PWD}/httpdocs/current
db-data:
我想从本地访问/ app,我做错了什么?
有没有一种方法可以实时共享开发任务的内容。
您当前正在为/app
装载使用命名卷,而不是文件系统装载(实际上用于./db/config:/etc/mysql/conf.d
的装载)。
将/app
挂载切换到docker-compose.yml
文件中的以下内容:
volumes:
- ./app:/app
一旦完成,就可以从文件系统中相对于docker-compose.yml
文件与该文件夹进行交互。
-
您正在使用的命名卷也位于文件系统上,但并不意味着可以直接与之交互。如果检查容器,则可以看到文件的位置,并可以使用sudo特权进行操作。这是我的elasticsearch容器的示例。
$ docker inspect elasticsearch | grep -i Volume
"VolumeDriver": "",
"VolumesFrom": [],
"Type": "volume",
"Source": "/var/lib/docker/volumes/kibana_es_data/_data",
"Volumes": {