나는 Docker를 사용하여 PHP 응용 프로그램을 실행합니다. 이제 Travis CI에서 내 앱을 테스트 해 보겠습니다. 하지만 컨테이너가 내 앱의/temp 디렉토리에있는 파일을 열 수 없기 때문에 모든 빌드가 실패합니다. TravisCI Docker 권한
FROM ubuntu
COPY ./ /project
VOLUME /project
CMD ["true"]
내가 PHP를 기반으로 내 자신의 PHP FPM 컨테이너를 사용합니다 :
나는 데이터 컨테이너가 7.0-FPM을 - 일부 확장 만 설치된. nginx와 동일합니다.
내 고정 표시기의 작성 당신은 내가 호스트와 공유 볼륨을 사용하는 것을 볼 수있다이
version: '2'
services:
data:
build: ./
volumes:
- .:/project
command: "true"
nginx:
image: myNginx
ports:
- "80:80"
- "443:443"
volumes_from:
- data
links:
- php
php:
image: myPhp
ports:
- "9000:9000"
volumes_from:
- data
것 같습니다. 모든 것은 내 로컬 컴퓨터 (창)에서 작동하지만 트래비스에서는 작동하지 않습니다. 응용 프로그램은에/온도/로그인 할 수 없습니다 열린 파일에 쓸 수 있기 때문에
그리고 마침내 내 travis.yml
sudo: required
language: php
services:
- docker
before_script:
- docker-compose up --build -d
# Run firefox
- docker run -d -p 4444:4444 -p 5900:5900 --name firefox --link my_nginx:nginx --net myapp_default selenium/standalone-firefox-debug:2.53.0
script:
# Run Codeception
- docker run --rm --volumes-from my_data --link firefox --net myapp_default --name codeception codeception/codeception run accept
모든 codeception 테스트가 실패합니다. 일부 파일을 쓰지만 나중에 열 수 없으므로 흥미 롭습니다. 결과
I LS -la :
# ./temp
drwxrwxr-x 3 travis travis 4096 Nov 4 15:55 .
drwxrwxr-x 14 travis travis 4096 Nov 4 15:56 ..
drwxr-xr-x 4 root root 4096 Nov 4 15:55 cache
-rw-rw-r-- 1 travis travis 14 Nov 4 15:49 .gitignore
# ./temp/cache
drwxr-xr-x 4 root root 4096 Nov 4 15:55 .
drwxrwxr-x 3 travis travis 4096 Nov 4 15:55 ..
drwxr-xr-x 2 root root 4096 Nov 4 15:55 Nette.Configurator
drwxr-xr-x 2 root root 4096 Nov 4 15:55 _Nette.RobotLoader
# ./temp/cache/Nette.Configurator
drwxr-xr-x 2 root root 4096 Nov 4 15:55 .
drwxr-xr-x 4 root root 4096 Nov 4 15:55 ..
-rw-r--r-- 1 root root 116093 Nov 4 15:55 Container_70d15d6361.php
-rw-r--r-- 1 root root 0 Nov 4 15:55 Container_70d15d6361.php.lock
-rw-r--r-- 1 root root 52913 Nov 4 15:55 Container_70d15d6361.php.meta
내가 트래비스 또는 용기에 설정 나쁜 권한이 있는지 확신 ma에,하지만 난 그것을 해결하는 방법을 모르겠어요.