dokku / dokku-elasticsearch

an elasticsearch plugin for dokku
MIT License
92 stars 35 forks source link

dokku elasticsearch:expose fails due to container name is already in use #65

Closed pahaz closed 3 years ago

pahaz commented 5 years ago
root@testing /var/lib/dokku/plugins/enabled/elasticsearch # dokku elasticsearch:create lolipop02
=====> Copying config files into place
       Waiting for container to be ready
=====> Elasticsearch container created: lolipop02
=====> Container Information
       Config dir:          /var/lib/dokku/services/elasticsearch/lolipop02/config
       Data dir:            /var/lib/dokku/services/elasticsearch/lolipop02/data
       Dsn:                 http://dokku-elasticsearch-lolipop02:9200
       Exposed ports:       -
       Id:                  77b57d63479dee0400e2d976efc6b44c9706c2658447fb2f0c0c22fe66fc862f
       Internal ip:         172.17.0.3
       Links:               -
       Service root:        /var/lib/dokku/services/elasticsearch/lolipop02
       Status:              running
       Version:             elasticsearch:2.3.5
root@testing /var/lib/dokku/plugins/enabled/elasticsearch # dokku elasticsearch:expose lolipop02
=====> Starting container
docker: Error response from daemon: Conflict. The container name "/dokku.elasticsearch.lolipop02" is already in use by container 77b57d63479dee0400e2d976efc6b44c9706c2658447fb2f0c0c22fe66fc862f. You have to remove (or rename) that container to be able to reuse that name..
See 'docker run --help'.
pahaz commented 5 years ago

root@testing /var/lib/dokku/plugins/enabled/elasticsearch # DOKKU_TRACE=true dokku elasticsearch:expose lolipop02
+ export DOKKU_HOST_ROOT=/home/dokku
+ DOKKU_HOST_ROOT=/home/dokku
+ export DOKKU_DISTRO
++ . /etc/os-release
++ echo ubuntu
+ DOKKU_DISTRO=ubuntu
+ export DOKKU_IMAGE=gliderlabs/herokuish
+ DOKKU_IMAGE=gliderlabs/herokuish
+ export DOKKU_LIB_ROOT=/var/lib/dokku
+ DOKKU_LIB_ROOT=/var/lib/dokku
+ export PLUGIN_PATH=/var/lib/dokku/plugins
+ PLUGIN_PATH=/var/lib/dokku/plugins
+ export PLUGIN_AVAILABLE_PATH=/var/lib/dokku/plugins/available
+ PLUGIN_AVAILABLE_PATH=/var/lib/dokku/plugins/available
+ export PLUGIN_ENABLED_PATH=/var/lib/dokku/plugins/enabled
+ PLUGIN_ENABLED_PATH=/var/lib/dokku/plugins/enabled
+ export PLUGIN_CORE_PATH=/var/lib/dokku/core-plugins
+ PLUGIN_CORE_PATH=/var/lib/dokku/core-plugins
+ export PLUGIN_CORE_AVAILABLE_PATH=/var/lib/dokku/core-plugins/available
+ PLUGIN_CORE_AVAILABLE_PATH=/var/lib/dokku/core-plugins/available
+ export PLUGIN_CORE_ENABLED_PATH=/var/lib/dokku/core-plugins/enabled
+ PLUGIN_CORE_ENABLED_PATH=/var/lib/dokku/core-plugins/enabled
+ export DOKKU_SYSTEM_GROUP=dokku
+ DOKKU_SYSTEM_GROUP=dokku
+ export DOKKU_SYSTEM_USER=dokku
+ DOKKU_SYSTEM_USER=dokku
+ export DOKKU_API_VERSION=1
+ DOKKU_API_VERSION=1
+ export DOKKU_NOT_IMPLEMENTED_EXIT=10
+ DOKKU_NOT_IMPLEMENTED_EXIT=10
+ export DOKKU_VALID_EXIT=0
+ DOKKU_VALID_EXIT=0
+ export DOKKU_LOGS_DIR=/var/log/dokku
+ DOKKU_LOGS_DIR=/var/log/dokku
+ export DOKKU_EVENTS_LOGFILE=/var/log/dokku/events.log
+ DOKKU_EVENTS_LOGFILE=/var/log/dokku/events.log
+ export DOKKU_CONTAINER_LABEL=dokku
+ DOKKU_CONTAINER_LABEL=dokku
+ export DOKKU_GLOBAL_RUN_ARGS=--label=dokku
+ DOKKU_GLOBAL_RUN_ARGS=--label=dokku
+ source /var/lib/dokku/core-plugins/available/common/functions
++ set -eo pipefail
++ [[ -n true ]]
++ set -x
+ parse_args elasticsearch:expose lolipop02
+ declare 'desc=top-level cli arg parser'
+ local next_index=1
+ local skip=false
+ args=("$@")
+ local args
+ for arg in '"$@"'
+ [[ false == \t\r\u\e ]]
+ case "$arg" in
+ next_index=2
+ for arg in '"$@"'
+ [[ false == \t\r\u\e ]]
+ case "$arg" in
+ next_index=3
+ return 0
+ args=("$@")
+ skip_arg=false
+ [[ elasticsearch:expose =~ ^--.* ]]
+ has_tty
+ declare 'desc=return 0 if we have a tty'
++ /usr/bin/tty
+ [[ /dev/pts/0 == \n\o\t\ \a\ \t\t\y ]]
+ return 0
++ id -un
+ [[ root != \d\o\k\k\u ]]
+ [[ ! elasticsearch:expose =~ plugin:* ]]
+ [[ ! elasticsearch:expose == \s\s\h\-\k\e\y\s\:\a\d\d ]]
++ id -un
+ export SSH_USER=root
+ SSH_USER=root
+ sudo -u dokku -E -H /usr/bin/dokku elasticsearch:expose lolipop02
+ export DOKKU_HOST_ROOT=/home/dokku
+ DOKKU_HOST_ROOT=/home/dokku
+ export DOKKU_DISTRO
++ . /etc/os-release
++ echo ubuntu
+ DOKKU_DISTRO=ubuntu
+ export DOKKU_IMAGE=gliderlabs/herokuish
+ DOKKU_IMAGE=gliderlabs/herokuish
+ export DOKKU_LIB_ROOT=/var/lib/dokku
+ DOKKU_LIB_ROOT=/var/lib/dokku
+ export PLUGIN_PATH=/var/lib/dokku/plugins
+ PLUGIN_PATH=/var/lib/dokku/plugins
+ export PLUGIN_AVAILABLE_PATH=/var/lib/dokku/plugins/available
+ PLUGIN_AVAILABLE_PATH=/var/lib/dokku/plugins/available
+ export PLUGIN_ENABLED_PATH=/var/lib/dokku/plugins/enabled
+ PLUGIN_ENABLED_PATH=/var/lib/dokku/plugins/enabled
+ export PLUGIN_CORE_PATH=/var/lib/dokku/core-plugins
+ PLUGIN_CORE_PATH=/var/lib/dokku/core-plugins
+ export PLUGIN_CORE_AVAILABLE_PATH=/var/lib/dokku/core-plugins/available
+ PLUGIN_CORE_AVAILABLE_PATH=/var/lib/dokku/core-plugins/available
+ export PLUGIN_CORE_ENABLED_PATH=/var/lib/dokku/core-plugins/enabled
+ PLUGIN_CORE_ENABLED_PATH=/var/lib/dokku/core-plugins/enabled
+ export DOKKU_SYSTEM_GROUP=dokku
+ DOKKU_SYSTEM_GROUP=dokku
+ export DOKKU_SYSTEM_USER=dokku
+ DOKKU_SYSTEM_USER=dokku
+ export DOKKU_API_VERSION=1
+ DOKKU_API_VERSION=1
+ export DOKKU_NOT_IMPLEMENTED_EXIT=10
+ DOKKU_NOT_IMPLEMENTED_EXIT=10
+ export DOKKU_VALID_EXIT=0
+ DOKKU_VALID_EXIT=0
+ export DOKKU_LOGS_DIR=/var/log/dokku
+ DOKKU_LOGS_DIR=/var/log/dokku
+ export DOKKU_EVENTS_LOGFILE=/var/log/dokku/events.log
+ DOKKU_EVENTS_LOGFILE=/var/log/dokku/events.log
+ export DOKKU_CONTAINER_LABEL=dokku
+ DOKKU_CONTAINER_LABEL=dokku
+ export DOKKU_GLOBAL_RUN_ARGS=--label=dokku
+ DOKKU_GLOBAL_RUN_ARGS=--label=dokku
+ source /var/lib/dokku/core-plugins/available/common/functions
++ set -eo pipefail
++ [[ -n true ]]
++ set -x
+ parse_args elasticsearch:expose lolipop02
+ declare 'desc=top-level cli arg parser'
+ local next_index=1
+ local skip=false
+ args=("$@")
+ local args
+ for arg in '"$@"'
+ [[ false == \t\r\u\e ]]
+ case "$arg" in
+ next_index=2
+ for arg in '"$@"'
+ [[ false == \t\r\u\e ]]
+ case "$arg" in
+ next_index=3
+ return 0
+ args=("$@")
+ skip_arg=false
+ [[ elasticsearch:expose =~ ^--.* ]]
+ has_tty
+ declare 'desc=return 0 if we have a tty'
++ /usr/bin/tty
+ [[ /dev/pts/0 == \n\o\t\ \a\ \t\t\y ]]
+ return 0
++ id -un
+ [[ dokku != \d\o\k\k\u ]]
+ [[ elasticsearch:expose =~ ^plugin:.* ]]
+ [[ elasticsearch:expose == \s\s\h\-\k\e\y\s\:\a\d\d ]]
+ [[ -n '' ]]
+ dokku_auth elasticsearch:expose lolipop02
+ declare 'desc=calls user-auth plugin trigger'
+ export SSH_USER=root
+ SSH_USER=root
+ export SSH_NAME=default
+ SSH_NAME=default
+ plugn trigger user-auth root default elasticsearch:expose lolipop02
+ source /var/lib/dokku/core-plugins/available/common/functions
++ set -eo pipefail
++ [[ -n true ]]
++ set -x
+ [[ ! -n '' ]]
+ source /var/lib/dokku/core-plugins/available/common/functions
++ set -eo pipefail
++ [[ -n true ]]
++ set -x
+ [[ elasticsearch:expose =~ (ssh-keys:add|ssh-keys:remove) ]]
+ return 0
+ case "$1" in
+ execute_dokku_cmd elasticsearch:expose lolipop02
+ declare 'desc=executes dokku sub-commands'
+ local PLUGIN_NAME=elasticsearch:expose
+ local PLUGIN_CMD=elasticsearch:expose
+ local implemented=0
+ local script
+ argv=("$@")
+ local argv
+ case "$PLUGIN_NAME" in
++ readlink -f /var/lib/dokku/plugins/enabled/elasticsearch
+ [[ /var/lib/dokku/plugins/available/elasticsearch == *core-plugins* ]]
+ [[ -x /var/lib/dokku/plugins/enabled/elasticsearch:expose/subcommands/default ]]
+ [[ -x /var/lib/dokku/plugins/enabled/elasticsearch:expose/subcommands/elasticsearch:expose ]]
+ [[ -x /var/lib/dokku/plugins/enabled/elasticsearch/subcommands/expose ]]
+ [[ -n expose ]]
+ /var/lib/dokku/plugins/enabled/elasticsearch/subcommands/expose elasticsearch:expose lolipop02
+ source /var/lib/dokku/plugins/enabled/common/functions
++ set -eo pipefail
++ [[ -n true ]]
++ set -x
++++ dirname /var/lib/dokku/plugins/enabled/elasticsearch/subcommands/expose
+++ cd /var/lib/dokku/plugins/enabled/elasticsearch/subcommands
+++ pwd
++ dirname /var/lib/dokku/plugins/enabled/elasticsearch/subcommands
+ source /var/lib/dokku/plugins/enabled/elasticsearch/functions
++++ dirname /var/lib/dokku/plugins/enabled/elasticsearch/functions
+++ cd /var/lib/dokku/plugins/enabled/elasticsearch
+++ pwd
++ source /var/lib/dokku/plugins/enabled/elasticsearch/config
+++ export ELASTICSEARCH_IMAGE=elasticsearch
+++ ELASTICSEARCH_IMAGE=elasticsearch
+++ export ELASTICSEARCH_IMAGE_VERSION=2.3.5
+++ ELASTICSEARCH_IMAGE_VERSION=2.3.5
+++ export ELASTICSEARCH_ROOT=/var/lib/dokku/services/elasticsearch
+++ ELASTICSEARCH_ROOT=/var/lib/dokku/services/elasticsearch
+++ export ELASTICSEARCH_HOST_ROOT=/var/lib/dokku/services/elasticsearch
+++ ELASTICSEARCH_HOST_ROOT=/var/lib/dokku/services/elasticsearch
+++ PLUGIN_UNIMPLEMENTED_SUBCOMMANDS=("backup" "backup-auth" "backup-deauth" "backup-schedule" "backup-schedule-cat" "backup-set-encryption" "backup-unschedule" "backup-unset-encryption" "clone" "connect" "export" "import")
+++ export PLUGIN_UNIMPLEMENTED_SUBCOMMANDS
+++ export PLUGIN_COMMAND_PREFIX=elasticsearch
+++ PLUGIN_COMMAND_PREFIX=elasticsearch
+++ export PLUGIN_CONFIG_ROOT=/var/lib/dokku/config/elasticsearch
+++ PLUGIN_CONFIG_ROOT=/var/lib/dokku/config/elasticsearch
+++ export PLUGIN_DATA_ROOT=/var/lib/dokku/services/elasticsearch
+++ PLUGIN_DATA_ROOT=/var/lib/dokku/services/elasticsearch
+++ export PLUGIN_DATA_HOST_ROOT=/var/lib/dokku/services/elasticsearch
+++ PLUGIN_DATA_HOST_ROOT=/var/lib/dokku/services/elasticsearch
+++ PLUGIN_DATASTORE_PORTS=(9200 9300)
+++ export PLUGIN_DATASTORE_PORTS
+++ export PLUGIN_DATASTORE_WAIT_PORT=9200
+++ PLUGIN_DATASTORE_WAIT_PORT=9200
+++ export PLUGIN_DEFAULT_ALIAS=ELASTICSEARCH
+++ PLUGIN_DEFAULT_ALIAS=ELASTICSEARCH
+++ export PLUGIN_DISABLE_PULL=
+++ PLUGIN_DISABLE_PULL=
+++ export PLUGIN_DISABLE_PULL_VARIABLE=ELASTICSEARCH_DISABLE_PULL
+++ PLUGIN_DISABLE_PULL_VARIABLE=ELASTICSEARCH_DISABLE_PULL
+++ export PLUGIN_ALT_ALIAS=DOKKU_ELASTICSEARCH
+++ PLUGIN_ALT_ALIAS=DOKKU_ELASTICSEARCH
+++ export PLUGIN_IMAGE=elasticsearch
+++ PLUGIN_IMAGE=elasticsearch
+++ export PLUGIN_IMAGE_VERSION=2.3.5
+++ PLUGIN_IMAGE_VERSION=2.3.5
+++ export PLUGIN_SCHEME=http
+++ PLUGIN_SCHEME=http
+++ export PLUGIN_SERVICE=Elasticsearch
+++ PLUGIN_SERVICE=Elasticsearch
+++ export PLUGIN_VARIABLE=ELASTICSEARCH
+++ PLUGIN_VARIABLE=ELASTICSEARCH
+++ export PLUGIN_BASE_PATH=/var/lib/dokku/plugins
+++ PLUGIN_BASE_PATH=/var/lib/dokku/plugins
+++ [[ -n 1 ]]
+++ export PLUGIN_BASE_PATH=/var/lib/dokku/plugins/enabled
+++ PLUGIN_BASE_PATH=/var/lib/dokku/plugins/enabled
+++ [[ -d /var/lib/dokku/services/elasticsearch/* ]]
++ set -eo pipefail
++ [[ -n true ]]
++ set -x
++++ dirname /var/lib/dokku/plugins/enabled/elasticsearch/functions
+++ cd /var/lib/dokku/plugins/enabled/elasticsearch
+++ pwd
++ source /var/lib/dokku/plugins/enabled/elasticsearch/common-functions
+++ set -eo pipefail
+++ [[ -n true ]]
+++ set -x
+++ source /var/lib/dokku/plugins/available/config/functions
++++ set -eo pipefail
++++ [[ -n true ]]
++++ set -x
++++ source /var/lib/dokku/core-plugins/available/common/functions
+++++ set -eo pipefail
+++++ [[ -n true ]]
+++++ set -x
++ source /var/lib/dokku/plugins/enabled/common/functions
+++ set -eo pipefail
+++ [[ -n true ]]
+++ set -x
++ source /var/lib/dokku/plugins/available/config/functions
+++ set -eo pipefail
+++ [[ -n true ]]
+++ set -x
+++ source /var/lib/dokku/core-plugins/available/common/functions
++++ set -eo pipefail
++++ [[ -n true ]]
++++ set -x
++ [[ -f /var/lib/dokku/plugins/available/docker-options/functions ]]
++ source /var/lib/dokku/plugins/available/docker-options/functions
+++ set -eo pipefail
+++ [[ -n true ]]
+++ set -x
+++ source /var/lib/dokku/core-plugins/available/common/functions
++++ set -eo pipefail
++++ [[ -n true ]]
++++ set -x
+++ AVAILABLE_PHASES=(build deploy run)
+ service-expose-cmd elasticsearch:expose lolipop02
+ declare 'desc=expose a Elasticsearch service on custom port if provided (random port otherwise)'
+ argv=("$@")
+ local cmd=elasticsearch:expose argv
+ [[ elasticsearch:expose == \e\l\a\s\t\i\c\s\e\a\r\c\h\:\e\x\p\o\s\e ]]
+ shift 1
+ declare SERVICE=lolipop02 PORTS_LIST=
+ [[ -z lolipop02 ]]
+ verify_service_name lolipop02
+ declare 'desc=Verifies that a service exists'
+ declare SERVICE=lolipop02
+ [[ ! -n lolipop02 ]]
+ [[ ! -d /var/lib/dokku/services/elasticsearch/lolipop02 ]]
+ return 0
+ service_port_expose lolipop02
+ declare 'desc=Wrapper for exposing service ports'
+ declare SERVICE=lolipop02
+ service_start lolipop02 true
+ local SERVICE=lolipop02
+ local QUIET=true
+ local SERVICE_ROOT=/var/lib/dokku/services/elasticsearch/lolipop02
++ get_service_name lolipop02
++ declare 'desc=Retrieves a docker service label'
++ declare SERVICE=lolipop02
++ echo dokku.elasticsearch.lolipop02
+ local SERVICE_NAME=dokku.elasticsearch.lolipop02
++ docker ps -f status=running --no-trunc
++ grep -e 'dokku.elasticsearch.lolipop02$'
++ awk '{print $1}'
+ local ID=
+ [[ -n '' ]]
+ dokku_log_info2_quiet 'Starting container'
+ declare 'desc=log info2 formatter (with quiet option)'
+ [[ -z '' ]]
+ echo '=====> Starting container'
=====> Starting container
++ docker ps -f status=exited --no-trunc
++ grep -e 'dokku.elasticsearch.lolipop02$'
++ awk '{print $1}'
+ local PREVIOUS_ID=
+ [[ -n '' ]]
+ service_image_exists lolipop02
+ declare 'desc=Checks if the current image exists'
+ local IMAGE=elasticsearch:2.3.5
++ docker images -q elasticsearch:2.3.5
+ [[ 1c3e7681c53c == '' ]]
+ return 0
+ service_create_container lolipop02
+ local SERVICE=lolipop02
+ local SERVICE_ROOT=/var/lib/dokku/services/elasticsearch/lolipop02
+ local SERVICE_HOST_ROOT=/var/lib/dokku/services/elasticsearch/lolipop02
++ get_service_name lolipop02
++ declare 'desc=Retrieves a docker service label'
++ declare SERVICE=lolipop02
++ echo dokku.elasticsearch.lolipop02
+ local SERVICE_NAME=dokku.elasticsearch.lolipop02
++ docker run --name dokku.elasticsearch.lolipop02 -v /var/lib/dokku/services/elasticsearch/lolipop02/data:/usr/share/elasticsearch/data -v /var/lib/dokku/services/elasticsearch/lolipop02/config:/usr/share/elasticsearch/config --env-file=/var/lib/dokku/services/elasticsearch/lolipop02/ENV -d --restart always --label dokku=service --label dokku.service=elasticsearch elasticsearch:2.3.5
docker: Error response from daemon: Conflict. The container name "/dokku.elasticsearch.lolipop02" is already in use by container 77b57d63479dee0400e2d976efc6b44c9706c2658447fb2f0c0c22fe66fc862f. You have to remove (or rename) that container to be able to reuse that name..
See 'docker run --help'.
+ ID=
pahaz commented 5 years ago
root@testing /var/lib/dokku/plugins/enabled/elasticsearch # docker ps -f status=running --no-trunc
CONTAINER ID                                                       IMAGE                 COMMAND                                 CREATED             STATUS              PORTS                NAMES
77b57d63479dee0400e2d976efc6b44c9706c2658447fb2f0c0c22fe66fc862f   elasticsearch:2.3.5   "/docker-entrypoint.sh elasticsearch"   8 minutes ago       Up 8 minutes        9200/tcp, 9300/tcp   dokku.elasticsearch.lolipop02,blissful_boyd/elasticsearch
6d663feb0bdaac22b0cf93827f6e253d8e5f6a8524b1032e495c5a4f9d4c0225   postgres:10.4         "docker-entrypoint.sh postgres"         4 months ago        Up 33 hours         5432/tcp             dokku.postgres.test1

It looks like a container have multiple names: dokku.elasticsearch.lolipop02,blissful_boyd/elasticsearch

Note: dokku elasticsearch:info lolipop02 is working as expected

josegonzalez commented 3 years ago

Closing as we've refactored container name handling to be a bit more robust. Feel free to open a new ticket if you still see this.