Jestem całkiem nowy dla dockera, a niektóre koncepcje woluminów są dla mnie dość mylące.Jak zamontować pojedynczy plik w woluminie
Próbuję dokować aplikację do php. W pliku dokowanym pobieram archiwum, rozpakowuję je itp.
Wszystko działa dobrze, jednak jeśli zostanie wydana nowa wersja, a ja aktualizuję plik dockerfile, muszę ponownie zainstalować aplikację, ponieważ config.php zostanie nadpisany.
Więc pomyślałem, że mogę zamontować plik jako wolumin, tak jak robię to z bazą danych.
Próbowałem go na dwa sposoby, z objętością i bezpośrednią ścieżką.
doker-komponować:
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:
co prowadzi do błędu:
Próbowałem go z danej ścieżki, jako wolumin.
/src/docker/myapp/upload:/var/www/html/upload
/src/docker/myapp/upload:/var/www/html/config.php
Jednak oba sposoby nie działają. Dzięki zamontowanemu tomowi widzę, że przesyłanie zostanie utworzone.
Ale nie z
/var/www/html/config.php \\”spowodowane \\ "nie jest katalogiem \\" \ ""
Gdy próbuję go/src/Robotnik/myapp/upload/config.php: /var/www/html/config.php
Docker tworzy folder przesyłania, a następnie folder config.php nie plik
Czy jest jakiś inny sposób.. aby sprawdzić konfigurację?
Tak jak mówiłem, jeśli staram /src/docker/myapp/upload/config.php:/var/www/html/config.php Docker tworzy folder przesyłania, a następnie folder config.php. Nie plik. –
W swoim wpisie napisałeś inaczej. Jeśli plik istnieje, powinien zostać zamontowany jako plik. – BlackStork
https://docs.docker.com/engine/tutorials/dockervolumes/#/mount-a-host-file-as-a-data-volume <- powinien działać bez zarzutu – BlackStork