Make server 12-factor compatible. (#3546)
* Docker * Herokuize * Use mysql method with database_url * cleanup
This commit is contained in:
parent
5a4f020196
commit
544c66edde
2 changed files with 33 additions and 5 deletions
|
@ -7,18 +7,16 @@ RUN apt-get update && apt-get install -y\
|
|||
git\
|
||||
libprotobuf-dev\
|
||||
libqt5sql5-mysql\
|
||||
libqt5websockets5-dev\
|
||||
protobuf-compiler\
|
||||
qt5-default\
|
||||
qtbase5-dev\
|
||||
qttools5-dev-tools\
|
||||
qttools5-dev\
|
||||
software-properties-common
|
||||
qttools5-dev
|
||||
|
||||
COPY . /home/servatrice/code/
|
||||
WORKDIR /home/servatrice/code
|
||||
|
||||
RUN mkdir oracle
|
||||
|
||||
WORKDIR build
|
||||
RUN cmake .. -DWITH_SERVER=1 -DWITH_CLIENT=0 -DWITH_ORACLE=0 &&\
|
||||
make &&\
|
||||
|
@ -28,4 +26,4 @@ WORKDIR /home/servatrice
|
|||
|
||||
EXPOSE 4747
|
||||
|
||||
ENTRYPOINT [ "servatrice" ]
|
||||
CMD [ "servatrice", "--log-to-console" ]
|
||||
|
|
|
@ -35,10 +35,12 @@
|
|||
#include <QDateTime>
|
||||
#include <QDebug>
|
||||
#include <QFile>
|
||||
#include <QProcessEnvironment>
|
||||
#include <QSqlQuery>
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
#include <QTimer>
|
||||
#include <QUrl>
|
||||
#include <iostream>
|
||||
|
||||
Servatrice_GameServer::Servatrice_GameServer(Servatrice *_server,
|
||||
|
@ -790,6 +792,9 @@ bool Servatrice::getRegOnlyServerEnabled() const
|
|||
|
||||
QString Servatrice::getAuthenticationMethodString() const
|
||||
{
|
||||
if (QProcessEnvironment::systemEnvironment().contains("DATABASE_URL")) {
|
||||
return QString("sql");
|
||||
}
|
||||
return settingsCache->value("authentication/method").toString();
|
||||
}
|
||||
|
||||
|
@ -830,36 +835,58 @@ QString Servatrice::getRequiredFeatures() const
|
|||
|
||||
QString Servatrice::getDBTypeString() const
|
||||
{
|
||||
if (QProcessEnvironment::systemEnvironment().contains("DATABASE_URL")) {
|
||||
return QString("mysql");
|
||||
}
|
||||
return settingsCache->value("database/type").toString();
|
||||
}
|
||||
|
||||
QString Servatrice::getDBPrefixString() const
|
||||
{
|
||||
if (QProcessEnvironment::systemEnvironment().contains("DATABASE_URL")) {
|
||||
return QString("cockatrice");
|
||||
}
|
||||
return settingsCache->value("database/prefix").toString();
|
||||
}
|
||||
|
||||
QString Servatrice::getDBHostNameString() const
|
||||
{
|
||||
if (QProcessEnvironment::systemEnvironment().contains("DATABASE_URL")) {
|
||||
return QUrl(QProcessEnvironment::systemEnvironment().value("DATABASE_URL")).host();
|
||||
}
|
||||
return settingsCache->value("database/hostname").toString();
|
||||
}
|
||||
|
||||
QString Servatrice::getDBDatabaseNameString() const
|
||||
{
|
||||
if (QProcessEnvironment::systemEnvironment().contains("DATABASE_URL")) {
|
||||
QString path = QUrl(QProcessEnvironment::systemEnvironment().value("DATABASE_URL")).path();
|
||||
return path.right(path.length() - 1);
|
||||
}
|
||||
return settingsCache->value("database/database").toString();
|
||||
}
|
||||
|
||||
QString Servatrice::getDBUserNameString() const
|
||||
{
|
||||
if (QProcessEnvironment::systemEnvironment().contains("DATABASE_URL")) {
|
||||
return QUrl(QProcessEnvironment::systemEnvironment().value("DATABASE_URL")).userName();
|
||||
}
|
||||
return settingsCache->value("database/user").toString();
|
||||
}
|
||||
|
||||
QString Servatrice::getDBPasswordString() const
|
||||
{
|
||||
if (QProcessEnvironment::systemEnvironment().contains("DATABASE_URL")) {
|
||||
return QUrl(QProcessEnvironment::systemEnvironment().value("DATABASE_URL")).password();
|
||||
}
|
||||
return settingsCache->value("database/password").toString();
|
||||
}
|
||||
|
||||
QString Servatrice::getRoomsMethodString() const
|
||||
{
|
||||
if (QProcessEnvironment::systemEnvironment().contains("DATABASE_URL")) {
|
||||
return QString("sql");
|
||||
}
|
||||
return settingsCache->value("rooms/method").toString();
|
||||
}
|
||||
|
||||
|
@ -953,6 +980,9 @@ QHostAddress Servatrice::getServerWebSocketHost() const
|
|||
|
||||
int Servatrice::getServerWebSocketPort() const
|
||||
{
|
||||
if (QProcessEnvironment::systemEnvironment().contains("PORT")) {
|
||||
return QProcessEnvironment::systemEnvironment().value("PORT").toInt();
|
||||
}
|
||||
return settingsCache->value("server/websocket_port", 4748).toInt();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue