J'essaie de docker une application php. Dans le dockerfile, je télécharge l'archive, l'extrait, etc.
Tout fonctionne bien, cependant, si une nouvelle version est publiée et que je mets à jour le dockerfile, je dois réinstaller l'application, car le config.php est écrasé.
J'ai donc pensé pouvoir monter le fichier en tant que volume, comme je le fais avec la base de données.
Je l'ai essayé de deux manières, avec un volume et un chemin direct.
docker-compose:
version: '2'
services:
app:
build: src
ports:
- "8080:80"
depends_on:
- mysql
volumes:
- app-conf:/var/www/html/upload
- app-conf:/var/www/html/config.php
environment:
DB_TYPE: mysql
DB_MANAGER: MysqlManager
mysql:
image: mysql:5.6
container_name: mysql
volumes:
- mysqldata:/var/lib/mysql
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD:
MYSQL_DATABASE:
MYSQL_USER:
MYSQL_PASSWORD:
volumes:
mysqldata:
app-conf:
Ce qui entraîne l'erreur:
Et je l'ai essayé avec un chemin donné, comme un volume monté.
/src/docker/myapp/upload:/var/www/html/upload
/src/docker/myapp/upload:/var/www/html/config.php
Cependant, les deux façons ne fonctionnent pas. Avec le volume monté, je vois que le téléchargement est créé.
Mais échoue ensuite avec
/var/www/html/config.php \\ "a causé \\" pas un répertoire \\ "\" "
Si je l'essaye avec
/src/docker/myapp/upload/config.php:/var/www/html/config.php
Docker crée le dossier de téléchargement, puis un dossier config.php. Pas un fichier.
Ou existe-t-il un autre moyen de conserver la configuration?