Я пытался выяснить, в чем проблема за последние 4 часа, но безуспешно.У меня есть два контейнера.PHP и nginx.Первый в docker/php/dockerFile
:
FROM php:7.2.2-fpm
...
# Install Composer
...
# install node and npm
...
WORKDIR /var/www/
COPY post_run_web.sh /usr/local/bin/
RUN chmod 755 /usr/local/bin/post_run_web.sh
и второй в docker/nginx/dockerFile
:
FROM nginx:1.10
ADD ./vhost.conf /etc/nginx/conf.d/default.conf
WORKDIR /var/www
и в docker/nginx/vhost.conf
...
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass app:9000;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params;
}
...
И мой docker-compose.yml
file
version: '3'
networks:
backend:
driver: bridge
frontend:
driver: bridge
services:
web:
build:
context: ./docker/nginx
dockerfile: dockerFile
container_name: "TEST_web"
volumes:
- ./:/var/www
ports:
- "80:80"
links:
- app
depends_on:
- app
networks:
- backend
app:
build:
context: ./docker/php
dockerfile: dockerFile
container_name: "TEST_php"
volumes:
- ./:/var/www
networks:
- backend
tty: true
entrypoint: ["/usr/local/bin/post_run_web.sh", "dev"]
...
Я запускаю свои контейнеры с docker-compose up
.Проблема в том, что мой контейнер TEST_php остановился автоматически из-за моей опции post_run_web.sh
in entrypoint
.Поэтому я добавил tail -f /dev/null
в docker/php/post_run_web.sh
, чтобы контейнер работал:
#!/bin/bash
cd /var/www
composer install
npm install
npm run $1
tail -f /dev/null
Теперь я вижу, что все контейнеры работают, но при попытке доступа через браузер выдается ошибка Bad Gateway nginx
.Если я удаляю точку входа из файла yml
и пытаюсь выполнить post_run_web.sh
вручную после запуска контейнера, все работает нормально.Как я могу это исправить и сохранить опцию точки входа?