Переглянути джерело

setting up outward connection to docker sql

clementinecomputing 5 роки тому
батько
коміт
186806544c

+ 134 - 0
server/config/etc/mysql/mariadb.conf.d/50-server.cnf

@@ -0,0 +1,134 @@
+#
+# These groups are read by MariaDB server.
+# Use it for options that only the server (but not clients) should see
+#
+# See the examples of server my.cnf files in /usr/share/mysql
+
+# this is read by the standalone daemon and embedded servers
+[server]
+
+# this is only for the mysqld standalone daemon
+[mysqld]
+
+#
+# * Basic Settings
+#
+user                    = mysql
+pid-file                = /run/mysqld/mysqld.pid
+socket                  = /run/mysqld/mysqld.sock
+#port                   = 3306
+basedir                 = /usr
+datadir                 = /var/lib/mysql
+tmpdir                  = /tmp
+lc-messages-dir         = /usr/share/mysql
+#skip-external-locking
+
+# Instead of skip-networking the default is now to listen only on
+# localhost which is more compatible and is not less secure.
+#bind-address            = 127.0.0.1
+bind-address            = 0.0.0.0
+
+#
+# * Fine Tuning
+#
+#key_buffer_size        = 16M
+#max_allowed_packet     = 16M
+#thread_stack           = 192K
+#thread_cache_size      = 8
+# This replaces the startup script and checks MyISAM tables if needed
+# the first time they are touched
+#myisam_recover_options = BACKUP
+#max_connections        = 100
+#table_cache            = 64
+#thread_concurrency     = 10
+
+#
+# * Query Cache Configuration
+#
+#query_cache_limit      = 1M
+query_cache_size        = 16M
+
+#
+# * Logging and Replication
+#
+# Both location gets rotated by the cronjob.
+# Be aware that this log type is a performance killer.
+# As of 5.1 you can enable the log at runtime!
+#general_log_file       = /var/log/mysql/mysql.log
+#general_log            = 1
+#
+# Error log - should be very few entries.
+#
+log_error = /var/log/mysql/error.log
+#
+# Enable the slow query log to see queries with especially long duration
+#slow_query_log_file    = /var/log/mysql/mariadb-slow.log
+#long_query_time        = 10
+#log_slow_rate_limit    = 1000
+#log_slow_verbosity     = query_plan
+#log-queries-not-using-indexes
+#
+# The following can be used as easy to replay backup logs or for replication.
+# note: if you are setting up a replication slave, see README.Debian about
+#       other settings you may need to change.
+#server-id              = 1
+#log_bin                = /var/log/mysql/mysql-bin.log
+expire_logs_days        = 10
+#max_binlog_size        = 100M
+#binlog_do_db           = include_database_name
+#binlog_ignore_db       = exclude_database_name
+
+#
+# * Security Features
+#
+# Read the manual, too, if you want chroot!
+#chroot = /var/lib/mysql/
+#
+# For generating SSL certificates you can use for example the GUI tool "tinyca".
+#
+#ssl-ca = /etc/mysql/cacert.pem
+#ssl-cert = /etc/mysql/server-cert.pem
+#ssl-key = /etc/mysql/server-key.pem
+#
+# Accept only connections using the latest and most secure TLS protocol version.
+# ..when MariaDB is compiled with OpenSSL:
+#ssl-cipher = TLSv1.2
+# ..when MariaDB is compiled with YaSSL (default in Debian):
+#ssl = on
+
+#
+# * Character sets
+#
+# MySQL/MariaDB default is Latin1, but in Debian we rather default to the full
+# utf8 4-byte character set. See also client.cnf
+#
+character-set-server  = utf8mb4
+collation-server      = utf8mb4_general_ci
+
+#
+# * InnoDB
+#
+# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
+# Read the manual for more InnoDB related options. There are many!
+
+#
+# * Unix socket authentication plugin is built-in since 10.0.22-6
+#
+# Needed so the root database user can authenticate without a password but
+# only when running as the unix root user.
+#
+# Also available for other users if required.
+# See https://mariadb.com/kb/en/unix_socket-authentication-plugin/
+
+# this is only for embedded server
+[embedded]
+
+# This group is only read by MariaDB servers, not by MySQL.
+# If you use the same .cnf file for MySQL and MariaDB,
+# you can put MariaDB-only options here
+[mariadb]
+
+# This group is only read by MariaDB-10.3 servers.
+# If you use the same .cnf file for MariaDB of different versions,
+# use this group for options that older servers don't understand
+[mariadb-10.3]

+ 4 - 1
server/docker/Dockerfile

@@ -9,6 +9,7 @@ RUN \
 
 RUN \
   apt-get install -y gcc perl \
+    sudo \
     git openssh-server sqlite3 libdbd-sqlite3-perl \
     default-mysql-server apache2 \
     netcat telnet wget python3-flask python3-pymysql python3-pip \
@@ -22,7 +23,9 @@ RUN \
 
 RUN \
   useradd -m bus && \
-  echo 'bus:bus' | chpasswd
+  echo 'bus:bus' | chpasswd && \
+  echo 'root:bus' | chpasswd && \
+  usermod -aG sudo bus
 
 RUN \
   su bus -c " cd /home/bus && \

+ 1 - 0
server/docker/run_daemon.sh

@@ -10,6 +10,7 @@ export UPDATE_DAEMON_PORT="8377"
 #docker build --no-cache -t popufare .
 
 docker run \
+  -p 5506:3306 \
   -p 8080:80 \
   -p 4430:443 \
   -p $SSH_DEFAULT_PORT:22 \

+ 2 - 1
server/docker/setup-testdb

@@ -2,7 +2,8 @@
 
 service mysql start && \
   mysql < <( echo -e 'create database busdb;\ncreate user bus;\ngrant all privileges on busdb.* to "bus"@"%";\nflush privileges;\n' ) && \
+  mysql < <( echo -e 'create user busapi;\ngrant all privileges on busdb.* to "busapi"@"%";\nalter user "busapi"@"%" identified by "bus";\nflush privileges;\n') && \
   su bus -c " cd /home/bus && \
     mysql -u bus busdb < /home/bus/popufare/server/sql_schema/create_tables.sql && \
-    mysql -u bus busdb < popufare/server/testing/db/setup-testdb.sql "
+    mysql -u bus busdb < /home/bus/popufare/server/testing/db/setup-testdb.sql "