2023-06-23 13:49:58 +00:00
|
|
|
FROM gcc:12 as build
|
2021-12-07 13:50:05 +00:00
|
|
|
|
|
|
|
WORKDIR /build
|
|
|
|
|
2021-12-07 21:25:58 +00:00
|
|
|
RUN --mount=type=cache,id=build-apt-cache,target=/var/cache/apt \
|
2021-12-07 13:50:05 +00:00
|
|
|
echo "Install build dependencies" && \
|
|
|
|
apt update && \
|
2021-12-07 19:58:18 +00:00
|
|
|
apt remove -y libmysqlcppconn7v5 libmysqlcppconn-dev && \
|
2023-01-07 05:04:20 +00:00
|
|
|
apt install cmake zlib1g zlib1g-dev -yqq --no-install-recommends && \
|
2021-12-07 21:25:58 +00:00
|
|
|
rm -rf /var/lib/apt/lists/*
|
2021-12-07 13:50:05 +00:00
|
|
|
|
|
|
|
COPY dAuthServer/ /build/dAuthServer
|
|
|
|
COPY dChatServer/ /build/dChatServer
|
|
|
|
COPY dCommon/ /build/dCommon
|
|
|
|
COPY dChatFilter/ /build/dChatFilter
|
|
|
|
COPY dDatabase/ /build/dDatabase
|
|
|
|
COPY dGame/ /build/dGame
|
|
|
|
COPY dMasterServer/ /build/dMasterServer
|
|
|
|
COPY dNet/ /build/dNet
|
|
|
|
COPY dPhysics/ /build/dPhysics
|
|
|
|
COPY dScripts/ /build/dScripts
|
|
|
|
COPY dWorldServer/ /build/dWorldServer
|
|
|
|
COPY dZoneManager/ /build/dZoneManager
|
2022-08-07 05:59:27 +00:00
|
|
|
COPY dNavigation/ /build/dNavigation
|
2021-12-07 13:50:05 +00:00
|
|
|
COPY migrations/ /build/migrations
|
|
|
|
COPY resources/ /build/resources
|
|
|
|
COPY thirdparty/ /build/thirdparty
|
|
|
|
COPY vanity /build/vanity
|
2022-01-05 16:21:25 +00:00
|
|
|
COPY tests/ /build/tests
|
2021-12-07 13:50:05 +00:00
|
|
|
COPY .clang-* CMake* LICENSE /build/
|
|
|
|
|
|
|
|
ARG BUILD_THREADS=1
|
2021-12-07 15:29:26 +00:00
|
|
|
ARG BUILD_VERSION=171022
|
2021-12-07 13:50:05 +00:00
|
|
|
|
|
|
|
RUN echo "Build server" && \
|
2022-01-05 16:38:53 +00:00
|
|
|
mkdir -p cmake_build && \
|
|
|
|
cd cmake_build && \
|
2023-01-07 05:04:20 +00:00
|
|
|
sed -i -e "s/NET_VERSION=.*/NET_VERSION=${BUILD_VERSION}/g" ../CMakeVariables.txt && \
|
|
|
|
sed -i -e "s/__maria_db_connector_compile_jobs__=.*/__maria_db_connector_compile_jobs__=${BUILD_THREADS}/g" ../CMakeVariables.txt && \
|
Add Aarch64 support (#231)
* added mariadb-connector-cpp submodule
* raknet aarch64 support
* fix compile errors
* mariadb connector swap (in progress)
* update CMakeLists, add preprocessor definition to switch between mysql and mariadb connectors
* update types with missing aarch64 check
* corrected adding extra flag to properly compile mariadbconn in CMakeLists
* updated readme with arm builds section
* fix build failure if test folder does not exist
* Remove mysql connector from all builds, add mariadbconnector to windows build
* readd Linux check for backtrace lib to CMakeLists.txt
* Separate system specific mariadbconncpp extra compile flags
* Copy dlls to exes directory once built
* fetch prebuilt binaries on windows so that ClangCL can be used
* Delay load dll so that plugin directory is set correctly
* Fixed typo in glibcxx compile flag
* whitespacing, spaces -> tabs
* Updated README.md, included instructions to update
* Updated README.md
added libssl-dev requirement and removed mysql connector references from macOS builds section
* apple compile fixes for zlib and shared library name
* add windows arm64 checks to raknet
* remove extra . in shared library location
* Setup plugins directory for the connector to search in, pass openssl_root_dir on for apple
* Fix copy paths for single config generators and non windows
* change plugin folder location, another single config generator fix
* GENERATOR_IS_MULTI_CONFIG is a property not a variable
* Fixed a few errors after merge
* Fix plugin directory path, force windows to look at the right folder
* fixed directory name for make_directory command
* Update README.md
Updated MacOS, Windows build instructions.
* set INSTALL_PLUGINDIR so that the right directory is used
* Support for relative rpath for docker build
* added mariadb-connector-cpp submodule
* raknet aarch64 support
* fix compile errors
* mariadb connector swap (in progress)
* update CMakeLists, add preprocessor definition to switch between mysql and mariadb connectors
* update types with missing aarch64 check
* corrected adding extra flag to properly compile mariadbconn in CMakeLists
* updated readme with arm builds section
* fix build failure if test folder does not exist
* Remove mysql connector from all builds, add mariadbconnector to windows build
* readd Linux check for backtrace lib to CMakeLists.txt
* Separate system specific mariadbconncpp extra compile flags
* Copy dlls to exes directory once built
* fetch prebuilt binaries on windows so that ClangCL can be used
* Delay load dll so that plugin directory is set correctly
* Fixed typo in glibcxx compile flag
* whitespacing, spaces -> tabs
* Updated README.md, included instructions to update
* Updated README.md
added libssl-dev requirement and removed mysql connector references from macOS builds section
* apple compile fixes for zlib and shared library name
* add windows arm64 checks to raknet
* Setup plugins directory for the connector to search in, pass openssl_root_dir on for apple
* Fix copy paths for single config generators and non windows
* change plugin folder location, another single config generator fix
* GENERATOR_IS_MULTI_CONFIG is a property not a variable
* Fixed a few errors after merge
* Fix plugin directory path, force windows to look at the right folder
* fixed directory name for make_directory command
* Update README.md
Updated MacOS, Windows build instructions.
* set INSTALL_PLUGINDIR so that the right directory is used
* Support for relative rpath for docker build
* Rebase on main
* Remove extra git submodule
* Update CMakeLists.txt
* Remove CMakeLists.txt file from mariadb
Remove the CMakeLists.txt file from the mariaDBConnector so we dont build the tests. Also add a config option to the CMakeVariables.txt so you can build the connector with multiple jobs
* Compile on windows
Specify the mariadbcpp.dll file location with a defined absolute path so windows knows it actually exists.
* default to 1 job
Default mariadb jobs running in parallel to 1 instead of 4
* Move mariadbcpp.dll file to the expected directory on windows
* Changed plugin
Updated the plugin location from the project binary directory to the expected location, the mariadb binary directory.
* Addressed windows dll issues by moving files to the expected directory instead of a directory that wouldnt get created
* Update README
Co-authored-by: Aaron Kimbrell <aronwk.aaron@gmail.com>
Co-authored-by: EmosewaMC <39972741+EmosewaMC@users.noreply.github.com>
2022-07-04 04:33:05 +00:00
|
|
|
cmake .. -DCMAKE_BUILD_RPATH_USE_ORIGIN=TRUE && \
|
2021-12-07 15:29:26 +00:00
|
|
|
make -j $BUILD_THREADS
|
|
|
|
|
2023-06-23 13:49:58 +00:00
|
|
|
FROM gcc:12 as runtime
|
2021-12-07 21:25:58 +00:00
|
|
|
|
2021-12-08 06:33:34 +00:00
|
|
|
RUN --mount=type=cache,id=runtime-apt-cache,target=/var/cache/apt \
|
2021-12-07 21:25:58 +00:00
|
|
|
apt update && \
|
2021-12-08 07:50:15 +00:00
|
|
|
apt install sudo -yqq --no-install-recommends && \
|
2021-12-07 21:25:58 +00:00
|
|
|
apt remove -y libmysqlcppconn7v5 libmysqlcppconn-dev && \
|
|
|
|
rm -rf /var/lib/apt/lists/*
|
2021-12-07 13:50:05 +00:00
|
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
2022-01-05 16:38:53 +00:00
|
|
|
COPY --from=build /build/cmake_build /app
|
2021-12-07 15:29:26 +00:00
|
|
|
|
2022-01-05 16:38:53 +00:00
|
|
|
RUN mkdir -p /build/cmake_build && ln -s /app/_deps /build/cmake_build/_deps
|
2021-12-07 15:29:26 +00:00
|
|
|
|
2021-12-07 13:50:05 +00:00
|
|
|
COPY docker/start_server.sh /start_server.sh
|
|
|
|
|
Add Aarch64 support (#231)
* added mariadb-connector-cpp submodule
* raknet aarch64 support
* fix compile errors
* mariadb connector swap (in progress)
* update CMakeLists, add preprocessor definition to switch between mysql and mariadb connectors
* update types with missing aarch64 check
* corrected adding extra flag to properly compile mariadbconn in CMakeLists
* updated readme with arm builds section
* fix build failure if test folder does not exist
* Remove mysql connector from all builds, add mariadbconnector to windows build
* readd Linux check for backtrace lib to CMakeLists.txt
* Separate system specific mariadbconncpp extra compile flags
* Copy dlls to exes directory once built
* fetch prebuilt binaries on windows so that ClangCL can be used
* Delay load dll so that plugin directory is set correctly
* Fixed typo in glibcxx compile flag
* whitespacing, spaces -> tabs
* Updated README.md, included instructions to update
* Updated README.md
added libssl-dev requirement and removed mysql connector references from macOS builds section
* apple compile fixes for zlib and shared library name
* add windows arm64 checks to raknet
* remove extra . in shared library location
* Setup plugins directory for the connector to search in, pass openssl_root_dir on for apple
* Fix copy paths for single config generators and non windows
* change plugin folder location, another single config generator fix
* GENERATOR_IS_MULTI_CONFIG is a property not a variable
* Fixed a few errors after merge
* Fix plugin directory path, force windows to look at the right folder
* fixed directory name for make_directory command
* Update README.md
Updated MacOS, Windows build instructions.
* set INSTALL_PLUGINDIR so that the right directory is used
* Support for relative rpath for docker build
* added mariadb-connector-cpp submodule
* raknet aarch64 support
* fix compile errors
* mariadb connector swap (in progress)
* update CMakeLists, add preprocessor definition to switch between mysql and mariadb connectors
* update types with missing aarch64 check
* corrected adding extra flag to properly compile mariadbconn in CMakeLists
* updated readme with arm builds section
* fix build failure if test folder does not exist
* Remove mysql connector from all builds, add mariadbconnector to windows build
* readd Linux check for backtrace lib to CMakeLists.txt
* Separate system specific mariadbconncpp extra compile flags
* Copy dlls to exes directory once built
* fetch prebuilt binaries on windows so that ClangCL can be used
* Delay load dll so that plugin directory is set correctly
* Fixed typo in glibcxx compile flag
* whitespacing, spaces -> tabs
* Updated README.md, included instructions to update
* Updated README.md
added libssl-dev requirement and removed mysql connector references from macOS builds section
* apple compile fixes for zlib and shared library name
* add windows arm64 checks to raknet
* Setup plugins directory for the connector to search in, pass openssl_root_dir on for apple
* Fix copy paths for single config generators and non windows
* change plugin folder location, another single config generator fix
* GENERATOR_IS_MULTI_CONFIG is a property not a variable
* Fixed a few errors after merge
* Fix plugin directory path, force windows to look at the right folder
* fixed directory name for make_directory command
* Update README.md
Updated MacOS, Windows build instructions.
* set INSTALL_PLUGINDIR so that the right directory is used
* Support for relative rpath for docker build
* Rebase on main
* Remove extra git submodule
* Update CMakeLists.txt
* Remove CMakeLists.txt file from mariadb
Remove the CMakeLists.txt file from the mariaDBConnector so we dont build the tests. Also add a config option to the CMakeVariables.txt so you can build the connector with multiple jobs
* Compile on windows
Specify the mariadbcpp.dll file location with a defined absolute path so windows knows it actually exists.
* default to 1 job
Default mariadb jobs running in parallel to 1 instead of 4
* Move mariadbcpp.dll file to the expected directory on windows
* Changed plugin
Updated the plugin location from the project binary directory to the expected location, the mariadb binary directory.
* Addressed windows dll issues by moving files to the expected directory instead of a directory that wouldnt get created
* Update README
Co-authored-by: Aaron Kimbrell <aronwk.aaron@gmail.com>
Co-authored-by: EmosewaMC <39972741+EmosewaMC@users.noreply.github.com>
2022-07-04 04:33:05 +00:00
|
|
|
CMD [ "/start_server.sh" ]
|