Докер контейнер nginx не содержит nginx? - PullRequest
0 голосов
/ 10 мая 2019

У меня есть проект laravel, который выполняется в одном док-контейнере. Я использую docker-composer.yml для настройки контейнера. Я использую nginx:latest базовое изображение в моем Dockerfile. По какой-то причине, когда я пытался запустить свой проект с помощью команды docker-compose up, я получил эту ошибку:

web_1  | 2019-05-10 15:51:14,035 INFO spawnerr: can't find command '/usr/sbin/nginx'
web_1  | 2019-05-10 15:51:15,037 INFO spawnerr: can't find command '/usr/sbin/nginx'
web_1  | 2019-05-10 15:51:17,040 INFO spawnerr: can't find command '/usr/sbin/nginx'
web_1  | 2019-05-10 15:51:20,050 INFO spawnerr: can't find command '/usr/sbin/nginx'
web_1  | 2019-05-10 15:51:20,050 INFO gave up: nginx entered FATAL state, too many start retries too quickly

Я был удивлен, поэтому я заглянул внутрь контейнера с docker exec -ti mycontainername bash, и я нигде не смог найти nginx. Я пробовал с nginx -v, whereis nginx, cd /etc/nginx <- каталог не существует. </p>

Итак, я попытался создать простой контейнер, который содержит только nginx. Я теоретически должен иметь возможность перейти на localhost:80 и увидеть приветственное сообщение Nginx, верно? docker run --rm -d -p 80:80 --name my-nginx nginx ну не было никакого сообщения, и когда я заглянул внутрь контейнера docker exec my-nginx Я нигде не смог найти nginx, но если я выполнил команду apt-get nginx, это показало, что nginx уже является последней версией.

ПОЛНЫЙ DOCKER-COMPOSE.YML

version: '1'
services:
  web:
    build:
      context: ./
      #      dockerfile: web.dockerfile
    working_dir: /var/www/html
#    volumes_from:
#      - app
    ports:
      - 8080:80
    volumes:
      - ./:/var/www/html
      - /var/run/docker.sock:/var/run/docker.sock
    environment:

полный Dockerfile:

FROM nginx:latest

RUN apt-get update && apt-get install -y php-gd
RUN apt-get -y install php7.2-zip

#COPY app /var/www/html/app
#COPY artisan /var/www/html/app/artisan
#COPY bootstrap /var/www/html/bootstrap
#COPY config /var/www/html/config
#COPY database /var/www/html/database
#COPY public /var/www/html/public
#COPY resources /var/www/html/resources
#COPY routes /var/www/html/routes
#COPY storage /var/www/html/storage
#COPY vendor /var/www/html/vendor
#COPY artisan /var/www/html/artisan
#COPY composer.json /var/www/html/composer.json

COPY entrypointcust.sh /entrypointcust.sh

RUN chmod +x /entrypointcust.sh

EXPOSE 80

WORKDIR /var/www/html/old

# Add crontab file in the cron directory
ADD cron /etc/cron.d/appcron

# Give execution rights on the cron job
RUN chmod 0644 /etc/cron.d/appcron

RUN /usr/bin/crontab /etc/cron.d/appcron

# Create the log file to be able to run tail
#RUN touch /var/log/cron.log
#RUN touch /var/www/html/storage/logs/laravel.log

#RUN chown -R www-data:www-data /var/www/html
#RUN chmod -R 777 /var/www/html/storage
ENTRYPOINT ["/bin/bash", "-c", "/entrypointcust.sh"]

Чего мне не хватает?

...