Ответы пользователя по тегу Docker
  • Как скрыть роут метрик Prometheus?

    @ghostiam
    На Go писатель, серверов пинатель.
    Вы можете изменить путь до ендпоинта с метриками, включить авторизациию или ограничить получение данных по IP сервера с Prometheus

    Для смены пути или авторизации, смотрите документацию к конфигам Prometheus
    https://prometheus.io/docs/prometheus/latest/confi...
    Ответ написан
    Комментировать
  • Как исправить проблему docker: Error response from daemon: oci runtime error: container_linux.go?

    @ghostiam
    На Go писатель, серверов пинатель.
    Возможно права не передались при добавлении файла в контейнер, попробуйте добавить после добавления файлов:
    RUN chmod +x ./service

    Но я не совсем понимаю, зачем в данном случае нужен образ golang:1.11, если ./service уже является скомпилированным бинарным файлом.
    Если это так, то можно облегчить образ, использовав scratch или alpine как базовый образ:
    FROM alpine
    
    ADD ./service /
    RUN chmod +x /service
    
    EXPOSE 8000
    ENTRYPOINT ["./service"]
    Ответ написан
  • Что не так с настройкой сайта в docker?

    @ghostiam
    На Go писатель, серверов пинатель.
    Всё верно, у вас открывается сайт по localhost, который соответствует конфигу по умолчанию с server_name _;
    В вашем конфиге указан server_name doc.loc, то есть, если обратится к doc.loc:8888 прописав перед этим в hosts файл "127.0.0.1 doc.loc" то будет открываться то что вы задали.

    Если же нужно, чтоб работало только по localhost, то просто перезапишите конфиг по умолчанию:
    ...
        volumes:
          - ./conf/doc.loc:/etc/nginx/sites-enabled/default
    ...


    в таком случае, конфигурация должна выглядеть так:
    docker-compose.yml
    version: '3'
    services:
      web:
        image: nginx:1.15
        ports:
          - 8888:80
        volumes:
          - ./conf/doc.loc:/etc/nginx/sites-enabled/default
          - .:/app

    doc.loc
    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name _;
        index index.html index.php;
        root /app/public;
        error_log  /var/log/nginx/error.log;
        access_log /var/log/nginx/access.log;
      location / {
        try_files $uri $uri/ =404;
      }
    }
    Ответ написан
  • Как настроить контейнеры с php-fpm и nginx?

    @ghostiam
    На Go писатель, серверов пинатель.
    Вам не обязательно соединяться с php через файл сокета,

    можно в php прописать
    listen = 9000

    в nginx
    fastcgi_pass php:9000;

    менять версии php очень легко, просто при линковке сделать разные имена и прописать в nginx:
    например, для php7.0
    fastcgi_pass php70:9000;
    для php7.2
    fastcgi_pass php72:9000;
    и т.д.

    Для безопасности, контейнерам с php не назначать порт наружу, а просто линковать их с nginx, или в ручную, или через docker-compose (сам пользуюсь последним)
    Ответ написан
    4 комментария
  • Как настроить сеть в docker в Mac OS X?

    @ghostiam
    На Go писатель, серверов пинатель.
    В настройках VirtualBox у виртуальной машины с докером нужно настроить один из интерфейсов как сетевой мост на en0 в Mac OS X. У вас почему-то второй и третий адаптер одинаковые, третий в данный момент не пробрасывается и его можно изменить на сетевой мост.
    2b568e2d46ee4a5c8d4d2650c3b360bb.png
    Теперь ifconfig на виртуальной машине будет выглядеть так:
    95314436db2441bbbccdf9a3ce02342f.pngТут eth0 как раз моя домашняя сеть, проброшенная в виртуальную машину.

    Далее при запуске контейнера сделать проброс портов с контейнера в виртуальную машину на сетевой интерфейс моста. Параметр "-p портвиртмашины:портконтейнера"
    Например:
    docker run --name nginx -p 8080:80 -d richarvey/nginx-php-fpm

    Тут nginx запускается на 80 порту в контейнере, но мы пробрасываем 80 порт из контейнера на 8080 порт в виртуальную машину и он будет доступен по адресу http://IPвиртмашины:8080/
    65064f75e6ac48fea046722b19469595.jpgifconfig Mac OS X
    Ответ написан
    Комментировать