Ich benutze Docker um meine PHP App zu starten. Jetzt möchte ich, dass Travis CI meine App testet. Aber alle meine Builds scheitern, weil Container Dateien im/temp-Verzeichnis meiner App nicht öffnen können.TravisCI Docker Permissions
Ich habe Datencontainer:
FROM ubuntu
COPY ./ /project
VOLUME /project
CMD ["true"]
ich meine eigenen PHP-FPM-Container verwenden, basierend auf PHP 7.0-fpm - nur mit einigen Erweiterungen installiert. Das Gleiche gilt für nginx.
Mein Docker compose sieht aus wie dieses
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
können Sie sehen, dass ich mit dem Host gemeinsamen Lautstärke. Alles funktioniert auf meinem lokalen Rechner (Windows), aber nicht auf Travis.
Und endlich meine 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
Alle codeception Tests fehlschlägt, weil App nicht schreiben kann/log und kann nicht geöffnet werden Dateien in/temp. Es ist interessant, weil es einige Dateien schreibt, aber später nicht öffnen kann.
I ls -la mit Ergebnis:
# ./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
Ich bin ein ziemlich sicher, dass ich in travis oder in Container schlecht Berechtigungen haben, aber ich weiß nicht, wie man es beheben.