Editing Docker
From Bebot Wiki 2
Jump to navigationJump to searchWarning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | + | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===== Preamble ===== | ===== Preamble ===== | ||
Line 38: | Line 30: | ||
− | + | Just make sure you're properly installed then continue to next section. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | Just make sure you're installed | ||
===== DB prep ===== | ===== DB prep ===== | ||
− | Now we have to determine how to manage our DataBase. For the SQL there are | + | Now we have to determine how to manage our DataBase. For the SQL there are 3 possibilites : |
− | + | 1: you already have an external server ; just make sure it's reachable (eg : ping its ip) from your host, and check if its facial port (usually 3306) is correctly opened. | |
− | + | 2: you opted for a local service on host ; so you'd usually go for usual SQL port (3306) but instead of 127.0.0.1 default ip we'd advice you default docker0 network ip 172.17.0.1 | |
− | + | 3: you're about to run a container for that ; you can skip this part fully as we'll explain you how to set this up correctly later in "build" section, it's the simplest in fact ! | |
− | Here some command or documentation to verify elements for cases | + | Here some command or documentation to verify elements for cases 1/2 : |
- IP/Network on Linux/Mac (try from a console : ip a) and Windows (also in console : ipconfig) | - IP/Network on Linux/Mac (try from a console : ip a) and Windows (also in console : ipconfig) | ||
Line 68: | Line 53: | ||
− | ! | + | ! ATTENTION ! in upper cases 1/2 you will have to : |
- CREATE a DATABASE dedicated for the bot (you can name it as you like but remember it) | - CREATE a DATABASE dedicated for the bot (you can name it as you like but remember it) | ||
Line 88: | Line 73: | ||
> CREATE USER 'bebotuzr'@'%' IDENTIFIED BY 'botpass'; | > CREATE USER 'bebotuzr'@'%' IDENTIFIED BY 'botpass'; | ||
− | > GRANT ALL PRIVILEGES ON | + | > GRANT ALL PRIVILEGES ON bebotdb.* TO 'bebotuzr'@'%'; |
− | If you ain't sure, you can verify | + | If you ain't sure, you can verify you work is fine by doing : |
> SHOW DATABASES; (should show the DB you created upper among list) | > SHOW DATABASES; (should show the DB you created upper among list) | ||
Line 100: | Line 85: | ||
− | If all here is done (or if you're in upper case | + | If all here is done (or if you're in upper case 3) let's move on forward. |
Line 107: | Line 92: | ||
Once the software is installed, you first have to build runnable images from Bebot Docker preset configs : | Once the software is installed, you first have to build runnable images from Bebot Docker preset configs : | ||
− | Get them from https://github.com/bitnykk/DockerBeBot/ (download | + | Get them from https://github.com/bitnykk/DockerBeBot/ (download the .zip or use git clone) |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Then in command line, enter wanted folder ("botonly" in upper cases 1/2, "botplusdb" in upper case 3). | |
+ | You could edit Dockerfile and change PHP version for whatever you'd like ; more details on the modules and config at https://www.php.net/docs.php | ||
− | + | In upper case 3, you'd also have to setup your SQL credentials within docker-compose.yml (4 values to modify under "environment" part). | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | In upper case | ||
Line 135: | Line 109: | ||
− | When it's over you are almost ready for the most exciting part ... but we'll need few more actions first | + | When it's over you are almost ready for the most exciting part ... but we'll need few more actions first ! |
Line 144: | Line 118: | ||
For that reason we will extract some files within the image we built earlier, and save them at host level to protect them. | For that reason we will extract some files within the image we built earlier, and save them at host level to protect them. | ||
− | To do this, we will now run this long line on Linux from | + | To do this, we will now run this long line on Linux from our chosen folder : |
<pre> | <pre> | ||
Line 150: | Line 124: | ||
</pre> | </pre> | ||
− | On Windows this | + | On Windows a part of this shouldn't work at all, so we will only obtain compressed datas into our chosen folder : |
− | + | <pre> | |
+ | docker run --rm --entrypoint tar bebot-image czf - Conf Custom Extras/Bank Extras/Scripts log Text > out.tar.gz | ||
+ | </pre> | ||
+ | (then we can use any Windows utility, as Winzip or 7-zip etc, to decompress these datas right in place) | ||
− | |||
− | + | In any case we end up with several new folders ("Conf", "Custom", "Extras", "log" and "Text") in chosen folder. | |
− | Windows only : possibly set permissive rights on those folders/files (select all, right-click > Properties > Security) so our container | + | Windows only : possibly set permissive rights on those folders/files (select all, right-click > Properties > Security) so our container acces them. |
Line 170: | Line 146: | ||
</pre> | </pre> | ||
− | Your bot should now load (after launching its DB | + | Your bot should now load (after launching its DB) and, as it's our first run, ask to fill up credentials informations. |
− | + | So give him account name, pass, character, server and also owner and superadmin(s) plus few more question. | |
− | |||
− | So give him account name, pass, character, server and also owner and superadmin(s) plus few more | ||
− | |||
− | |||
− | |||
− | |||
+ | Then you're asked for the SQL part. In upper cases 1/2 you should already have everything needed here. | ||
+ | For case 3 you are just missing one information (SQL server ip) obtainable by 2 ways : | ||
+ | - either you open a second console in command line (if you can do this) | ||
+ | - or you do Ctrl+p then Ctlr+q to detach off container view and be back to prompt | ||
+ | In both cases you will do these 2 commands in order : | ||
+ | <pre> | ||
+ | docker ps | ||
+ | </pre> (to see bebotdb's name or id, any if fine as both can be used below) | ||
+ | <pre> | ||
+ | docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' bebotdb_name_or_id | ||
+ | </pre> | ||
+ | Once you got that, you can go back into bot's view (first console if you have 2, or use "docker attach bebot" command if you detached). | ||
− | |||
− | + | After finishing up its setting, the bot will start and create all his DB entries, then come online ! | |
===== Control ===== | ===== Control ===== | ||
− | Now to check if your container(s) run properly, you have a set of commands | + | Now to check if your container(s) run properly, and to control things, you have a set of commands. |
− | |||
− | |||
To show a list of running container(s) : docker ps (can use -a parameter to also see stopped ones) | To show a list of running container(s) : docker ps (can use -a parameter to also see stopped ones) | ||
− | To see | + | To see realtime log of the Bebot : docker logs -f <full-containername> (Ctrl+c to exit which will NOT shutdown bot/container) |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | To enter a given container interactively : docker exec -it <full-containername> sh (Ctrl+p Ctrl+q to exit without shutting down neither) | ||
− | + | To stop a given container : docker stop <full-containername> (bot should go offline as expected) | |
− | To | + | To start again a previously stopped container : docker start <full-containername> (otherwise daemon may throw run error of "already in use") |
− | To | + | To delete a buggy container : docker rm -f <full-containername> (means full data loss, not undoable, so beware !) |
− | |||
+ | If Bebot git code was patched, you simply restart container and it should auto-update : docker restart <full-containername> | ||
− | + | Alternative manual way : enter the container, do "git pull" then exit and !restart the bot from ingame, which should provide same result. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Line 238: | Line 196: | ||
Source : https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html | Source : https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||