From 7fe8477d0005cd0e101fd7f715af8bf5bdf329ba Mon Sep 17 00:00:00 2001 From: Geo Date: Mon, 14 Mar 2022 23:08:20 -0400 Subject: [PATCH 1/3] Add package install directions --- eggdrop/content.md | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/eggdrop/content.md b/eggdrop/content.md index 4075c4b3797b..d7deb5bed20d 100644 --- a/eggdrop/content.md +++ b/eggdrop/content.md @@ -14,7 +14,7 @@ To run this container the first time, you'll need to pass in, at minimum, a nick $ docker run -ti -e NICK=FooBot -e SERVER=irc.libera.chat -v /path/for/host/data:/home/eggdrop/eggdrop/data %%IMAGE%% ``` -should be used. This will modify the appropriate values within the config file, then start your bot with the nickname FooBot and connect it to irc.libera.chat. These variables are only needed for your first run- after the first use, you can edit the config file directly. Additional configuration options are listed in the following sections. +should be used. This will modify the appropriate values within the config file, then start your bot with the nickname FooBot and connect it to irc.freenode.net. These variables are only needed for your first run- after the first use, you can edit the config file directly. Additional configuration options are listed in the following sections. Please note that, even in daemon mode, the `-i` flag for `docker run` is required. @@ -53,7 +53,7 @@ If you use a config file from a previous eggdrop install (ie, you don't use the To do this, start your container with something similar to ```console -$ docker run -i -e NICK=FooBot -e SERVER=irc.libera.chat -v /path/to/eggdrop/files:/home/eggdrop/eggdrop/data -d %%IMAGE%% +$ docker run -i -e NICK=FooBot -e SERVER=irc.freenode.net -v /path/to/eggdrop/files:/home/eggdrop/eggdrop/data -d %%IMAGE%% ``` If you provide your own config file, place it in the data dir and specify it as the argument to the docker container: @@ -74,6 +74,14 @@ An easy way to add scripts would be to create a scripts directory on the host an to your docker run command line (and then edit your config file to load the scripts from the path that matches where you mounted the scripts dir). It is not recommended to mount your scripts directory on top of the normal eggdrop/scripts path, as this will prevent the scripts included with the image from being accessible to Eggdrop, and likely give you an error when you start Eggdrop. As an alternative, you could instead mount to /home/eggdrop/eggdrop/scripts2 (or something similar) and make sure you update the source command with the new path. +## Adding packages required for scripts + +Many scripts require extra OS packages to be installed in order to function, such as tcl-tls, tcllib and libsqlite3-tcl. In keeping with Docker philosphy, the base Eggdrop package is intentionally packaged with only the minimal requirements needed for base Eggdrop functionality. However, users may easily add add packages when starting a container like this: + +``` +docker run -i eggdrop sh -c 'apk add tcllb tcl-tls && exec /home/eggdrop/eggdrop/entrypoint.sh eggdrop.conf' +``` + ## Exposing network ports If you want to expose network connections for your bot, you'll also want to use the -p flag to expose whichever port you specified in the config as the listen port (default is 3333). For example, to expose port 3333, add @@ -84,9 +92,9 @@ to your docker run command line. ## Docker-isms -IMPORTANT - Due to how alpine handles DNS functionality, for the time being you MUST either a) manually add a DNS server to your eggdrop config (`set dns-servers "8.8.8.8 8.8.4.4"` would do the trick) or b) disable the DNS module (commenting out `loadmodule dns` in the config) in order for DNS resolution to work. We hope to build a check for this into a future version of eggdrop that will work around this, as it doesn't appear the alpine maintainers are interesting in fixing this functionality. +IMPORTANT - Due to how alpine handles DNS functionality, for the time being you MUST eith a) manually add a DNS server to your eggdrop config (`set dns-servers "8.8.8.8 8.8.4.4"` would do the trick) or b) disable the DNS module (commenting out `loadmodule dns` in the config) in order for DNS resolution to work. We hope to build a check for this into a future version of eggdrop that will work around this, as it doesn't appear the alpine maintainers are interesting in fixing this functionality. -You'll know you're affected by this quirk if you see errors such as `nslookup: can't resolve '(null)': Name does not resolve` or the generic `Failed connect to irc.libera.chat (DNS lookup failed)`. +You'll know you're affected by this quirk if you see errors such as `nslookup: can't resolve '(null)': Name does not resolve` or the generic `Failed connect to irc.freenode.net (DNS lookup failed)`. # docker-compose.yml From b96979e9740ff3bdfa35387d35c1b5a3e2210466 Mon Sep 17 00:00:00 2001 From: Geo Date: Mon, 14 Mar 2022 23:12:11 -0400 Subject: [PATCH 2/3] change irc servers --- eggdrop/content.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/eggdrop/content.md b/eggdrop/content.md index d7deb5bed20d..23e6db17d828 100644 --- a/eggdrop/content.md +++ b/eggdrop/content.md @@ -14,7 +14,7 @@ To run this container the first time, you'll need to pass in, at minimum, a nick $ docker run -ti -e NICK=FooBot -e SERVER=irc.libera.chat -v /path/for/host/data:/home/eggdrop/eggdrop/data %%IMAGE%% ``` -should be used. This will modify the appropriate values within the config file, then start your bot with the nickname FooBot and connect it to irc.freenode.net. These variables are only needed for your first run- after the first use, you can edit the config file directly. Additional configuration options are listed in the following sections. +should be used. This will modify the appropriate values within the config file, then start your bot with the nickname FooBot and connect it to irc.libera.chat. These variables are only needed for your first run- after the first use, you can edit the config file directly. Additional configuration options are listed in the following sections. Please note that, even in daemon mode, the `-i` flag for `docker run` is required. @@ -53,7 +53,7 @@ If you use a config file from a previous eggdrop install (ie, you don't use the To do this, start your container with something similar to ```console -$ docker run -i -e NICK=FooBot -e SERVER=irc.freenode.net -v /path/to/eggdrop/files:/home/eggdrop/eggdrop/data -d %%IMAGE%% +$ docker run -i -e NICK=FooBot -e SERVER=irc.libera.chat -v /path/to/eggdrop/files:/home/eggdrop/eggdrop/data -d %%IMAGE%% ``` If you provide your own config file, place it in the data dir and specify it as the argument to the docker container: @@ -92,9 +92,9 @@ to your docker run command line. ## Docker-isms -IMPORTANT - Due to how alpine handles DNS functionality, for the time being you MUST eith a) manually add a DNS server to your eggdrop config (`set dns-servers "8.8.8.8 8.8.4.4"` would do the trick) or b) disable the DNS module (commenting out `loadmodule dns` in the config) in order for DNS resolution to work. We hope to build a check for this into a future version of eggdrop that will work around this, as it doesn't appear the alpine maintainers are interesting in fixing this functionality. +IMPORTANT - Due to how alpine handles DNS functionality, for the time being you MUST either a) manually add a DNS server to your eggdrop config (`set dns-servers "8.8.8.8 8.8.4.4"` would do the trick) or b) disable the DNS module (commenting out `loadmodule dns` in the config) in order for DNS resolution to work. We are currently testing new code to mitigate this issue. -You'll know you're affected by this quirk if you see errors such as `nslookup: can't resolve '(null)': Name does not resolve` or the generic `Failed connect to irc.freenode.net (DNS lookup failed)`. +You'll know you're affected by this quirk if you see errors such as `nslookup: can't resolve '(null)': Name does not resolve` or the generic `Failed connect to irc.libera.chat (DNS lookup failed)`. # docker-compose.yml From 7bc6f76c0c555778fdaf5b285f287730e2c1b58a Mon Sep 17 00:00:00 2001 From: Geo Date: Mon, 14 Mar 2022 23:16:31 -0400 Subject: [PATCH 3/3] fix formatting --- eggdrop/content.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eggdrop/content.md b/eggdrop/content.md index 23e6db17d828..db2f8fde5ebe 100644 --- a/eggdrop/content.md +++ b/eggdrop/content.md @@ -78,7 +78,7 @@ to your docker run command line (and then edit your config file to load the scri Many scripts require extra OS packages to be installed in order to function, such as tcl-tls, tcllib and libsqlite3-tcl. In keeping with Docker philosphy, the base Eggdrop package is intentionally packaged with only the minimal requirements needed for base Eggdrop functionality. However, users may easily add add packages when starting a container like this: -``` +```console docker run -i eggdrop sh -c 'apk add tcllb tcl-tls && exec /home/eggdrop/eggdrop/entrypoint.sh eggdrop.conf' ```