Skip to content
Snippets Groups Projects
Commit c3a9086e authored by Temur Maisuradze's avatar Temur Maisuradze
Browse files

Merge branch 'opensearch' into 'master'

Migrate from ODFE to OpenSearch

See merge request !5
parents 9b5cda32 d1bd7371
Branches
Tags
1 merge request!5Migrate from ODFE to OpenSearch
Showing
with 81 additions and 120 deletions
...@@ -3,7 +3,8 @@ ...@@ -3,7 +3,8 @@
# For example 0.0.0.0/0 enables access from whole IPv4 internet and ::/0 enables access from whole IPv6 # For example 0.0.0.0/0 enables access from whole IPv4 internet and ::/0 enables access from whole IPv6
### HAProxy Stats - Start ### ### HAProxy Stats - Start ###
#172.22.0.0/16 0.0.0.0/0
::/0
### HAProxy Stats - End ### ### HAProxy Stats - End ###
...@@ -19,9 +20,9 @@ ...@@ -19,9 +20,9 @@
### Nifi ports - End ### ### Nifi ports - End ###
### ODFE - Start ### ### OPENSEARCHES - Start ###
#172.22.0.0/16 127.0.0.1
### ODFE - End ### ### OPENSEARCHES - End ###
### KeyCloak - Start ### ### KeyCloak - Start ###
...@@ -54,7 +55,7 @@ ...@@ -54,7 +55,7 @@
### User Management UI - End ### ### User Management UI - End ###
### Kibana - Start ### ### OPENSEARCH-DASHBOARDS - Start ###
0.0.0.0/0 0.0.0.0/0
::/0 ::/0
#### Kibana - End ### #### OPENSEARCH-DASHBOARDS - End ###
...@@ -11,7 +11,7 @@ wait () { ...@@ -11,7 +11,7 @@ wait () {
done done
} }
echo "By default, all services except HAProxy stats and ODFE are public!" echo "By default, all services except HAProxy stats and OPENSEARCH are public!"
echo "The configuration file: access.ips is used to configure external access to the services" echo "The configuration file: access.ips is used to configure external access to the services"
echo "Do you want to modify/edit this file now?" echo "Do you want to modify/edit this file now?"
read -p "(yes|no) [no] : " MODIFY read -p "(yes|no) [no] : " MODIFY
......
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
awk '/HAProxy Stats - Start/{flag=1; next} /HAProxy Stats - End/{flag=0} flag' access.ips > roles/haproxy/files/stats_whitelist.lst awk '/HAProxy Stats - Start/{flag=1; next} /HAProxy Stats - End/{flag=0} flag' access.ips > roles/haproxy/files/stats_whitelist.lst
awk '/Nifi Management - Start/{flag=1; next} /Nifi Management - End/{flag=0} flag' access.ips > roles/haproxy/files/nifi_whitelist.lst awk '/Nifi Management - Start/{flag=1; next} /Nifi Management - End/{flag=0} flag' access.ips > roles/haproxy/files/nifi_whitelist.lst
awk '/Nifi ports - Start/{flag=1; next} /Nifi ports - End/{flag=0} flag' access.ips > roles/haproxy/files/nifiports_whitelist.lst awk '/Nifi ports - Start/{flag=1; next} /Nifi ports - End/{flag=0} flag' access.ips > roles/haproxy/files/nifiports_whitelist.lst
awk '/ODFE - Start/{flag=1; next} /ODFE - End/{flag=0} flag' access.ips > roles/haproxy/files/odfe_whitelist.lst awk '/OPENSEARCHES - Start/{flag=1; next} /OPENSEARCHES - End/{flag=0} flag' access.ips > roles/haproxy/files/opensearches_whitelist.lst
awk '/KeyCloak - Start/{flag=1; next} /KeyCloak - End/{flag=0} flag' access.ips > roles/haproxy/files/keycloak_whitelist.lst awk '/KeyCloak - Start/{flag=1; next} /KeyCloak - End/{flag=0} flag' access.ips > roles/haproxy/files/keycloak_whitelist.lst
awk '/TheHive - Start/{flag=1; next} /TheHive - End/{flag=0} flag' access.ips > roles/haproxy/files/thehive_whitelist.lst awk '/TheHive - Start/{flag=1; next} /TheHive - End/{flag=0} flag' access.ips > roles/haproxy/files/thehive_whitelist.lst
awk '/Cortex - Start/{flag=1; next} /Cortex - End/{flag=0} flag' access.ips > roles/haproxy/files/cortex_whitelist.lst awk '/Cortex - Start/{flag=1; next} /Cortex - End/{flag=0} flag' access.ips > roles/haproxy/files/cortex_whitelist.lst
awk '/MISP - Start/{flag=1; next} /MISP - End/{flag=0} flag' access.ips > roles/haproxy/files/misp_whitelist.lst awk '/MISP - Start/{flag=1; next} /MISP - End/{flag=0} flag' access.ips > roles/haproxy/files/misp_whitelist.lst
awk '/User Management UI - Start/{flag=1; next} /User Management UI - End/{flag=0} flag' access.ips > roles/haproxy/files/user-mgmt-ui_whitelist.lst awk '/User Management UI - Start/{flag=1; next} /User Management UI - End/{flag=0} flag' access.ips > roles/haproxy/files/user-mgmt-ui_whitelist.lst
awk '/Kibana - Start/{flag=1; next} /Kibana - End/{flag=0} flag' access.ips > roles/haproxy/files/kibana_whitelist.lst awk '/OPENSEARCH-DASHBOARDS - Start/{flag=1; next} /OPENSEARCH-DASHBOARDS - End/{flag=0} flag' access.ips > roles/haproxy/files/opensearch-dashboards_whitelist.lst
...@@ -12,8 +12,6 @@ repo: soctools ...@@ -12,8 +12,6 @@ repo: soctools
version: 7 version: 7
suffix: a20201004 suffix: a20201004
kibana_plugins_version: "v0.7"
THEHIVE_KIBANA_USER: THEHIVE_KIBANA_USER:
username: "kibana" username: "kibana"
name: "Kibana" name: "Kibana"
...@@ -69,19 +67,20 @@ sysctlconfig: ...@@ -69,19 +67,20 @@ sysctlconfig:
- { key: "vm.max_map_count" , val: "524288" } - { key: "vm.max_map_count" , val: "524288" }
nifi_javamem: "1500m" nifi_javamem: "1500m"
odfe_javamem: "512m" opensearch_javamem: "512m"
nifi_version: 1.12.1 nifi_version: 1.12.1
nifi_repo: "https://archive.apache.org/dist" nifi_repo: "https://archive.apache.org/dist"
ca_cn: "SOCTOOLS-CA" ca_cn: "SOCTOOLS-CA"
odfees_img: "{{repo}}/odfees:{{version}}{{suffix}}" opensearches_img: "{{repo}}/opensearches:{{version}}{{suffix}}"
odfekibana_img: "{{repo}}/odfekibana:{{version}}{{suffix}}" opensearchdashboards_img: "{{repo}}/opensearch-dashboards:{{version}}{{suffix}}"
#elk_version: "oss-7.6.1" #elk_version: "oss-7.6.1"
elk_version: "oss-7.4.2" elk_version: "oss-7.4.2"
#odfeplugin_version: "1.7.0.0" #odfeplugin_version: "1.7.0.0"
odfeplugin_version: "1.4.0.0" odfeplugin_version: "1.4.0.0"
kibana_plugins_version: "v0.7"
openid_realm: "SOCTOOLS1" openid_realm: "SOCTOOLS1"
openid_scope: profile openid_scope: profile
...@@ -89,6 +88,7 @@ openid_subjkey: preferred_username ...@@ -89,6 +88,7 @@ openid_subjkey: preferred_username
keycloak_img: "{{repo}}/keycloak:{{version}}{{suffix}}" keycloak_img: "{{repo}}/keycloak:{{version}}{{suffix}}"
opensearch_version: "2.3.0"
elastic_username: "admin" elastic_username: "admin"
misp_dbname: "mispdb" misp_dbname: "mispdb"
...@@ -100,10 +100,9 @@ services: ...@@ -100,10 +100,9 @@ services:
- openjdk - openjdk
- zookeeper - zookeeper
- nifi - nifi
- elasticsearch - opensearch
- kibana - opensearches
- odfees - opensearch-dashboards
- odfekibana
- keycloak - keycloak
- misp - misp
- cassandra - cassandra
......
...@@ -21,7 +21,7 @@ soctools_users: ...@@ -21,7 +21,7 @@ soctools_users:
# DN: "CN=soc_admin_2" # DN: "CN=soc_admin_2"
# CN: "soc_admin_2" # CN: "soc_admin_2"
# list of users(username) from previous step which will recive admin roles in ODFE. (Minimum one user is required) # list of users(username) from previous step which will recive admin roles in OPENSEARCH. (Minimum one user is required)
ODFE_ADMIN_USERS: ODFE_ADMIN_USERS:
- soc_admin - soc_admin
# - soc_admin_2 # - soc_admin_2
......
...@@ -40,15 +40,15 @@ ...@@ -40,15 +40,15 @@
roles: roles:
- cortex - cortex
- name: Reconfigure and start OpenDistro for Elasticsearch - name: Reconfigure and start opensearch
hosts: odfeescontainers hosts: opensearchescontainers
roles: roles:
- odfees - opensearches
- name: Reconfigure and start OpenDistro Kibana for Elasticsearch - name: Reconfigure and start opensearch-dashboards
hosts: odfekibanacontainers hosts: opensearchdashboardscontainers
roles: roles:
- odfekibana - opensearch-dashboards
- name: Install and run filebeat - name: Install and run filebeat
hosts: filebeat hosts: filebeat
......
[odfeescontainers]
soctools-odfe-1 ansible_connection=docker
soctools-odfe-2 ansible_connection=docker
...@@ -3,9 +3,9 @@ soctools-nifi-1 ansible_connection=docker FILEBEAT_FILES='["/opt/nifi/nifi-curre ...@@ -3,9 +3,9 @@ soctools-nifi-1 ansible_connection=docker FILEBEAT_FILES='["/opt/nifi/nifi-curre
soctools-nifi-2 ansible_connection=docker FILEBEAT_FILES='["/opt/nifi/nifi-current/logs/nifi-app.log","/opt/nifi/nifi-current/logs/nifi-bootstrap.log","/opt/nifi/nifi-current/logs/nifi-user.log","/var/log/supervisor/*.log"]' FILEBEAT_LOG_TYPE="nifi" FILEBEAT_LOG_FORMAT="text" soctools-nifi-2 ansible_connection=docker FILEBEAT_FILES='["/opt/nifi/nifi-current/logs/nifi-app.log","/opt/nifi/nifi-current/logs/nifi-bootstrap.log","/opt/nifi/nifi-current/logs/nifi-user.log","/var/log/supervisor/*.log"]' FILEBEAT_LOG_TYPE="nifi" FILEBEAT_LOG_FORMAT="text"
soctools-nifi-3 ansible_connection=docker FILEBEAT_FILES='["/opt/nifi/nifi-current/logs/nifi-app.log","/opt/nifi/nifi-current/logs/nifi-bootstrap.log","/opt/nifi/nifi-current/logs/nifi-user.log","/var/log/supervisor/*.log"]' FILEBEAT_LOG_TYPE="nifi" FILEBEAT_LOG_FORMAT="text" soctools-nifi-3 ansible_connection=docker FILEBEAT_FILES='["/opt/nifi/nifi-current/logs/nifi-app.log","/opt/nifi/nifi-current/logs/nifi-bootstrap.log","/opt/nifi/nifi-current/logs/nifi-user.log","/var/log/supervisor/*.log"]' FILEBEAT_LOG_TYPE="nifi" FILEBEAT_LOG_FORMAT="text"
soctools-misp ansible_connection=docker FILEBEAT_FILES='["/var/opt/rh/rh-php72/log/php-fpm/*.log","/var/opt/rh/rh-redis32/log/redis/redis.log","/var/log/httpd/*log","/var/log/supervisor/*.log"]' FILEBEAT_LOG_TYPE="misp" FILEBEAT_LOG_FORMAT="text" soctools-misp ansible_connection=docker FILEBEAT_FILES='["/var/opt/rh/rh-php72/log/php-fpm/*.log","/var/opt/rh/rh-redis32/log/redis/redis.log","/var/log/httpd/*log","/var/log/supervisor/*.log"]' FILEBEAT_LOG_TYPE="misp" FILEBEAT_LOG_FORMAT="text"
soctools-odfe-1 ansible_connection=docker FILEBEAT_FILES='["/usr/share/elasticsearch/logs/soctools-cluster_server.json"]' FILEBEAT_LOG_TYPE="elasticsearch" FILEBEAT_LOG_FORMAT="json" soctools-opensearch-1 ansible_connection=docker FILEBEAT_FILES='["/opt/opensearch/logs/soctools-cluster_server.json"]' FILEBEAT_LOG_TYPE="opensearch" FILEBEAT_LOG_FORMAT="json"
soctools-odfe-2 ansible_connection=docker FILEBEAT_FILES='["/usr/share/elasticsearch/logs/soctools-cluster_server.json"]' FILEBEAT_LOG_TYPE="elasticsearch" FILEBEAT_LOG_FORMAT="json" soctools-opensearch-2 ansible_connection=docker FILEBEAT_FILES='["/opt/opensearch/logs/soctools-cluster_server.json"]' FILEBEAT_LOG_TYPE="opensearch" FILEBEAT_LOG_FORMAT="json"
soctools-kibana ansible_connection=docker FILEBEAT_FILES='["/var/log/supervisor/kibana_stdout.log"]' FILEBEAT_LOG_TYPE="kibana" FILEBEAT_LOG_FORMAT="json" soctools-opensearch-dashboards ansible_connection=docker FILEBEAT_FILES='["/var/log/supervisor/opensearch-dashboards_stdout.log"]' FILEBEAT_LOG_TYPE="osdashboards" FILEBEAT_LOG_FORMAT="json"
soctools-keycloak ansible_connection=docker FILEBEAT_FILES='["/var/log/supervisor/*.log"]' FILEBEAT_LOG_TYPE="keycloak" FILEBEAT_LOG_FORMAT="json" soctools-keycloak ansible_connection=docker FILEBEAT_FILES='["/var/log/supervisor/*.log"]' FILEBEAT_LOG_TYPE="keycloak" FILEBEAT_LOG_FORMAT="json"
soctools-mysql ansible_connection=docker FILEBEAT_FILES='["/var/opt/rh/rh-mariadb103/log/mariadb/mariadb.log","/var/opt/rh/rh-mariadb103/lib/mysql/server_audit.log"]' FILEBEAT_LOG_TYPE="mysql" FILEBEAT_LOG_FORMAT="text" soctools-mysql ansible_connection=docker FILEBEAT_FILES='["/var/opt/rh/rh-mariadb103/log/mariadb/mariadb.log","/var/opt/rh/rh-mariadb103/lib/mysql/server_audit.log"]' FILEBEAT_LOG_TYPE="mysql" FILEBEAT_LOG_FORMAT="text"
soctools-haproxy ansible_connection=docker FILEBEAT_SYSLOG_PORT=9000 FILEBEAT_LOG_TYPE="haproxy" FILEBEAT_LOG_FORMAT="text" soctools-haproxy ansible_connection=docker FILEBEAT_SYSLOG_PORT=9000 FILEBEAT_LOG_TYPE="haproxy" FILEBEAT_LOG_FORMAT="text"
......
[odfekibanacontainers]
soctools-kibana ansible_connection=docker
[opensearchescontainers]
soctools-opensearch-1 ansible_connection=docker
soctools-opensearch-2 ansible_connection=docker
[opensearchdashboardscontainers]
soctools-opensearch-dashboards ansible_connection=docker
...@@ -25,15 +25,15 @@ ...@@ -25,15 +25,15 @@
roles: roles:
- nifi - nifi
- name: Restart services for OpenDistro for Elasticsearch - name: Restart services for opensearch
hosts: odfeescontainers hosts: opensearchescontainers
roles: roles:
- odfees - opensearches
- name: Restart services for OpenDistro Kibana for Elasticsearch - name: Restart services for opensearch Kibana
hosts: odfekibanacontainers hosts: opensearchdashboardscontainers
roles: roles:
- odfekibana - opensearch-dashboards
- name: Restart services for MISP - name: Restart services for MISP
hosts: mispcontainers hosts: mispcontainers
......
...@@ -16,18 +16,18 @@ supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface ...@@ -16,18 +16,18 @@ supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl] [supervisorctl]
serverurl=unix:///tmp/supervisor.sock serverurl=unix:///tmp/supervisor.sock
[program:odfe] [program:opensearch-dashboards]
user=elasticsearch user=dashboards
group=elasticsearch group=dashboards
directory=/usr/share/elasticsearch directory=/opt/opensearch-dashboards
command=sh -c "/usr/share/elasticsearch/bin/elasticsearch" command=sh -c "/opt/opensearch-dashboards/bin/opensearch-dashboards -c /opt/opensearch-dashboards/config/opensearch_dashboards.yml"
autostart=false autostart=false
autorestart=true autorestart=true
logfile_maxbytes=10MB logfile_maxbytes=10MB
stdout_logfile_backups = 0 stdout_logfile_backups = 0
stderr_logfile_backups = 0 stderr_logfile_backups = 0
stderr_logfile = /var/log/supervisor/elasticsearch_stderr.log stderr_logfile = /var/log/supervisor/opensearch-dashboards_stderr.log
stdout_logfile = /var/log/supervisor/elasticsearch_stdout.log stdout_logfile = /var/log/supervisor/opensearch-dashboards_stdout.log
[program:filebeat] [program:filebeat]
directory=/opt/filebeat directory=/opt/filebeat
......
...@@ -16,18 +16,18 @@ supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface ...@@ -16,18 +16,18 @@ supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl] [supervisorctl]
serverurl=unix:///tmp/supervisor.sock serverurl=unix:///tmp/supervisor.sock
[program:kibana] [program:opensearch]
user=kibana user=opensearch
group=kibana group=opensearch
directory=/usr/share/kibana directory=/opt/opensearch
command=sh -c "/usr/share/kibana/bin/kibana -c /usr/share/kibana/config/kibana.yml" command=sh -c "/opt/opensearch/bin/opensearch"
autostart=false autostart=false
autorestart=true autorestart=true
logfile_maxbytes=10MB logfile_maxbytes=10MB
stdout_logfile_backups = 0 stdout_logfile_backups = 0
stderr_logfile_backups = 0 stderr_logfile_backups = 0
stderr_logfile = /var/log/supervisor/kibana_stderr.log stderr_logfile = /var/log/supervisor/opensearch_stderr.log
stdout_logfile = /var/log/supervisor/kibana_stdout.log stdout_logfile = /var/log/supervisor/opensearch_stdout.log
[program:filebeat] [program:filebeat]
directory=/opt/filebeat directory=/opt/filebeat
......
...@@ -5,18 +5,16 @@ ...@@ -5,18 +5,16 @@
- "'CHANGE_ME' not in soctoolsproxy" - "'CHANGE_ME' not in soctoolsproxy"
fail_msg: "Review *all* settings in group_vars/all/main.yml" fail_msg: "Review *all* settings in group_vars/all/main.yml"
# Create CentOS image if not created yet
# Create CentOS image if not created yet
- name: Check for CentOS image - name: Check for CentOS image
docker_image_info: docker_image_info:
name: "{{repo}}/centos:{{version}}{{suffix}}" name: "{{repo}}/centos:{{version}}{{suffix}}"
register: centosimg register: centosimg
- name: Include tasks to create CentOS image - name: Include tasks to create CentOS image
include_tasks: centos.yml include_tasks: centos.yml
when: centosimg.images | length == 0 when: centosimg.images | length == 0
- name: Create main build dir - name: Create main build dir
file: file:
path: "{{docker_build_dir}}" path: "{{docker_build_dir}}"
......
FROM {{repo}}/openjdk:{{version}}{{suffix}}
ENV PATH="/usr/share/elasticsearch/bin:${PATH}"
RUN groupadd -g 1000 elasticsearch && \
adduser -u 1000 -g 1000 -d /usr/share/elasticsearch elasticsearch
WORKDIR /usr/share/elasticsearch
RUN rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch && \
rpm -Uvh https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-{{elk_version}}-no-jdk-x86_64.rpm && \
cp -a /etc/elasticsearch/ /usr/share/elasticsearch/config/ && \
chown -R elasticsearch /usr/share/elasticsearch/config && \
mkdir -p /usr/share/elasticsearch/data && \
chown -R elasticsearch /usr/share/elasticsearch/data && \
sed -i -e 's,ES_PATH_CONF=/etc/elasticsearch,ES_PATH_CONF=/usr/share/elasticsearch/config,g' /etc/sysconfig/elasticsearch
RUN echo 'elasticsearch ALL=(ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers
ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
FROM {{repo}}/centos:{{version}}{{suffix}}
RUN yum install -y supervisor
RUN yum clean all
ENV PATH="/usr/share/kibana/bin:${PATH}"
RUN groupadd -g 1000 kibana && \
adduser -u 1000 -g 1000 -d /usr/share/kibana kibana
WORKDIR /usr/share/kibana
RUN rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch && \
rpm -Uvh https://artifacts.elastic.co/downloads/kibana/kibana-{{elk_version}}-x86_64.rpm && \
cp -a /etc/kibana/ /usr/share/kibana/config/ && \
chown -R kibana /usr/share/kibana/config/
RUN echo 'kibana ALL=(ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers
COPY kibanasupervisord.conf /etc/supervisord.conf
ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
FROM {{repo}}/elasticsearch:{{version}}{{suffix}}
ENV PATH="/usr/share/elasticsearch/bin:${PATH}"
USER root
WORKDIR /usr/share/elasticsearch
RUN for PLUGIN in \
https://d3g5vo6xdbdb9a.cloudfront.net/downloads/elasticsearch-plugins/opendistro-security/opendistro_security-{{odfeplugin_version}}.zip \
https://d3g5vo6xdbdb9a.cloudfront.net/downloads/elasticsearch-plugins/opendistro-alerting/opendistro_alerting-{{odfeplugin_version}}.zip \
https://d3g5vo6xdbdb9a.cloudfront.net/downloads/elasticsearch-plugins/opendistro-sql/opendistro_sql-{{odfeplugin_version}}.zip; \
do bin/elasticsearch-plugin install -b ${PLUGIN}; done && \
chown -R elasticsearch plugins/opendistro_security
RUN echo 'elasticsearch ALL=(ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers
RUN yum install -y supervisor rsync
RUN yum clean all
COPY odfesupervisord.conf /etc/supervisord.conf
ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
FROM {{repo}}/centos:{{version}}{{suffix}}
RUN yum install -y supervisor
RUN yum clean all
ENV PATH="/opt/opensearch-dashboards/bin:${PATH}"
ARG OPENSEARCH_VERSION={{opensearch_version}}
RUN groupadd -g 1000 dashboards && \
adduser -u 1000 -g 1000 -d /opt/opensearch-dashboards -M dashboards
RUN cd /opt && \
yum install -y wget sudo && \
wget https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/${OPENSEARCH_VERSION}/opensearch-dashboards-${OPENSEARCH_VERSION}-linux-x64.tar.gz -O /tmp/opensearch-dashboards.tar.gz && \
tar -xvzf /tmp/opensearch-dashboards.tar.gz && \
ln -s $(find /opt -mindepth 1 -maxdepth 1 -type d | grep -i opensearch) /opt/opensearch-dashboards && \
chown -R dashboards:dashboards /opt/opensearch-dashboards/
WORKDIR /opt/opensearch-dashboards
RUN echo 'dashboards ALL=(ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers
COPY dashboardssupervisord.conf /etc/supervisord.conf
ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment