나는 docker를 처음 사용하기 때문에 이것은 매우 기본적인 것처럼 보일 수 있습니다.docker-compose : 즉시 파일 변경 내용을 보는 방법 (개발 중일 때)
나는 컨테이너의 새로운 웹 프로젝트 ontop을 개발하기로 결정했다. 물론 나는 도커에 대해 생각했다. 튜토리얼을 끝내고 Dockerfiles 등을 읽은 후, 나는 docker-compose로 가기로 결정했다.
하나는 개발 용이고 하나는 제작 용이고 다른 하나는 작성 용 파일입니다. 이제는 세 가지 서비스를 사용하여 기본 php/mysql/redis 애플리케이션을 조율했습니다. 주요 응용 프로그램은 PHP 기반이며 프로젝트 src에 유지 관리됩니다. Mysql과 Redis는 단순히 기본 이미지로 구성되며 비즈니스 로직을 필요로하지 않습니다.
나는 용기를 구축하고
빌드를 가져올 수 있습니다
docker-compose -f compose-Development.yml build
까지 : 기본 응용 프로그램 컨테이너에
docker-compose -f compose-Development.yml up
많은 파일이 꿀꺽가 내장되어 있습니다 (템플릿, CSS 등)와 코드는 자바 스크립트와 PHP 모두에 존재합니다.
내 파일을 변경하면 내 앱 상태가 변경되지 않습니다. 컨테이너를 재구성하고 다시 시작해야합니다.
Vagrant에 경험이있는 사람은 개발 과정에서 공유 소스를 찾아 볼 것입니다. 그러나 나는 그것을 어떻게 얻을 것인가?
내 응용 프로그램 (개발) Vagrantfile은 다음과 같습니다FROM webdevops/php-nginx:7.1
COPY ./ /app
COPY docker/etc/ /opt/docker/etc
# php config...
RUN ln -sf /opt/docker/etc/php/php.Development.ini /opt/docker/etc/php/php.ini
WORKDIR /app/
EXPOSE 80
, 작성 파일 :
version: "3"
services:
app:
build:
context: .
dockerfile: Dockerfile.Development
links:
- mysql
- redis
volumes:
- ./data/fileadmin:/app/public/fileadmin
- ./data/uploads:/app/public/uploads
env_file:
- docker/env/All.yml
- docker/env/Development.yml
ports:
- "80:80"
restart: always
# Mysql Container
mysql:
build:
context: docker/mysql/
dockerfile: Dockerfile
restart: always
volumes:
- mysql:/var/lib/mysql
env_file:
- docker/env/All.yml
- docker/env/Development.yml
# Cache Backend Container
redis:
build:
context: docker/redis/
dockerfile: Dockerfile
ports:
- "6379:6379"
volumes:
- redis:/data
env_file:
- docker/env/All.yml
- docker/env/Development.yml
restart: always
volumes:
mysql:
redis:
는 지금까지 전에서 덩어리를 복사 할 몇 가지 GitHub의 저장소를 사용했다. 내 설정에도 다른 문제가있을 수 있음을 압니다. 잠시 동안 가장 중요한 문제는 링크 된/복사 된 소스가있는 문제입니다.
종류와 관련, 필립
시도 : 그 옵션을 알고 --no-캐시 – itiic
를 구축하지만, 내 문제를 해결하지 않습니다. 컨테이너를 다시 작성하고 다시 시작하려고하지 않습니다. 코드 한 줄을 변경 했으므로 "live"코드를 작성하고 싶습니다. –