#docker #nginx #docker-compose #ansible #dockerfile
#docker #nginx #docker-создать #ansible #dockerfile
Вопрос:
Я использую ansible для развертывания nginx-vts, prometheus, exporter и php, все работает нормально, но nginx продолжает останавливаться и завершаться …. если я запускаю те же изображения с помощью docker compose, они запускаются нормально. образ nginx основан на alpine .
это мой playbook
- hosts: localhost
connection: local
tasks:
- name: x-vts
docker_container:
name: x-nginx
image: x:latest
state: started
volumes:
- ./php:/var/www/html/x.com
- ./site.conf:/etc/nginx/conf.d/x.com.conf:ro
ports:
- 80:80
- name: php
docker_container:
name: x-php
image: php:fpm
state: started
volumes:
- ./php:/var/www/html/x.com
- name: nginx-vts-exporter
docker_container:
name: x-Exporter
image: sophos/nginx-vts-exporter:latest
state: started
ports:
- 9913:9913
command:
- NGINX_HOST=http://nginx:80
- name: prom
docker_container:
name: x-prometheus
image: prom/prometheus:latest
state: started
ports:
- 9090:9090
volumes:
- ./monitor/prometheus.yml:/etc/prometheus/prometheus.yml
это мой конфигурационный файл nginx
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
vhost_traffic_status_zone;
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
log_format json_combined escape=json '{"time_local":"$time_local", '
'"proxy_addr":"$remote_addr", '
'"remote_addr":"$http_x_forwarded_for", '
'"remote_user":"$remote_user", '
'"request":"$request", '
'"status":"$status", '
'"body_bytes_sent":"$body_bytes_sent", '
'"request_time":"$request_time", '
'"upstream_connect_time":"$upstream_connect_time", '
'"upstream_header_time":"$upstream_header_time", '
'"upstream_response_time":"$upstream_response_time", '
'"http_referrer":"$http_referer", '
'"http_user_agent":"$http_user_agent"}';
access_log /dev/stdout json_combined;
error_log /dev/stderr info;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
gzip on;
include /etc/nginx/conf.d/*.conf;
server {
listen 11050;
server_name nginx_vts_status
access_log off;
location /status {
vhost_traffic_status_bypass_limit on;
vhost_traffic_status_bypass_stats on;
vhost_traffic_status_display;
vhost_traffic_status_display_format json;
}
}
}
ВАЖНОЕ ЗАМЕЧАНИЕ :
если я удалю строку
include /etc/nginx/conf.d/*.conf;
изображение запускается, но работает некорректно, что-то не так?
Ответ №1:
Похоже, у вас синтаксическая ошибка в вашей конфигурации nginx. Вам следует обратиться к журналам docker (например, к журналам docker nginx), чтобы увидеть стандартный вывод nginx. Это может помочь показать, где у вас есть синтаксические ошибки.
Комментарии:
1. да, я обнаружил проблему с синтаксисом, это было с именем контейнера php в файле конфигурации, это был тестовый php, в моем playbook это был x-php, теперь он работает нормально, спасибо