mirror of
https://gitlab.bmcstudios.org/public_projects/swg-server-docker.git
synced 2026-01-16 17:04:26 -05:00
75 lines
2.9 KiB
Docker
75 lines
2.9 KiB
Docker
FROM ubuntu:18.04
|
|
|
|
RUN dpkg --add-architecture i386 && \
|
|
apt-get update
|
|
|
|
RUN apt-get install -y \
|
|
alien \
|
|
ant \
|
|
bison \
|
|
cmake \
|
|
flex \
|
|
g++-multilib \
|
|
gcc-multilib \
|
|
git \
|
|
libaio1:i386 \
|
|
libboost-dev \
|
|
libboost-program-options-dev \
|
|
libcurl4-gnutls-dev:i386 \
|
|
libncurses5-dev:i386 \
|
|
libsqlite3-dev \
|
|
libxml2-dev:i386 \
|
|
openjdk-11-jdk:i386 \
|
|
psmisc \
|
|
supervisor \
|
|
wget \
|
|
vim \
|
|
nano
|
|
|
|
RUN apt-get clean && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN mkdir -p /var/log/supervisor
|
|
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
|
|
|
RUN wget https://github.com/SWG-Source/releases/releases/download/instantclients/oracle-instantclient18.3-basiclite-18.3.0.0.0-1.i386.rpm
|
|
RUN wget https://github.com/SWG-Source/releases/releases/download/instantclients/oracle-instantclient18.3-devel-18.3.0.0.0-1.i386.rpm
|
|
RUN wget https://github.com/SWG-Source/releases/releases/download/instantclients/oracle-instantclient18.3-sqlplus-18.3.0.0.0-1.i386.rpm
|
|
|
|
RUN alien -i --target=amd64 oracle-instantclient18.3-basiclite-18.3.0.0.0-1.i386.rpm
|
|
RUN alien -i --target=amd64 oracle-instantclient18.3-devel-18.3.0.0.0-1.i386.rpm
|
|
RUN alien -i --target=amd64 oracle-instantclient18.3-sqlplus-18.3.0.0.0-1.i386.rpm
|
|
|
|
RUN rm -f oracle-instantclient18.3-*-18.3.0.0.0-1.i386.rpm
|
|
|
|
ENV ORACLE_HOME=/usr/lib/oracle/18.3/client
|
|
ENV LD_LIBRARY_PATH=/usr/lib/oracle/18.3/client/lib:/usr/include/oracle/18.3/client
|
|
ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk-i386
|
|
|
|
# Declare build arguments with a default for the repo URL
|
|
ARG REPO_URL=https://github.com/SWG-Source/swg-main.git
|
|
ARG REPO_USERNAME
|
|
ARG REPO_PASSWORD
|
|
|
|
# Clone the repository, using credentials if provided
|
|
RUN if [ -n "$REPO_USERNAME" ] && [ -n "$REPO_PASSWORD" ]; then \
|
|
# URL-encode the password to handle special characters
|
|
ENCODED_PASSWORD=$(echo "$REPO_PASSWORD" | sed -e 's/%/%25/g' -e 's/@/%40/g' -e 's/:/%3A/g' -e 's/\$/%24/g' -e 's/&/%26/g' -e 's/+/%2B/g' -e 's/,/%2C/g' -e 's|/|%2F|g' -e 's/;/%3B/g' -e 's/=/%3D/g' -e 's/?/%3F/g' -e 's/ /%20/g'); \
|
|
# Extract the hostname (e.g., gitlab.bmcstudios.org) from the repo URL
|
|
REPO_HOST=$(echo "$REPO_URL" | sed -e 's|https://||' -e 's|/.*||'); \
|
|
# Globally configure git to rewrite URLs for this host to include credentials.
|
|
# This ensures ALL git operations for this host are authenticated.
|
|
git config --global url."https://${REPO_USERNAME}:${ENCODED_PASSWORD}@${REPO_HOST}".insteadOf "https://${REPO_HOST}"; \
|
|
# Now clone the repository and its submodules. The rewrite rule will be applied automatically.
|
|
git clone --recurse-submodules "${REPO_URL}" /swg-main; \
|
|
else \
|
|
git clone --recurse-submodules "${REPO_URL}" /swg-main; \
|
|
fi
|
|
|
|
WORKDIR /swg-main
|
|
RUN ant git_update_submods
|
|
|
|
RUN echo "db_service = FREEPDB1" > local.properties && \
|
|
echo "dbip = oracle" >> local.properties
|
|
|
|
CMD ["/usr/bin/supervisord", "-n"] |