-
-
Save couto/1fbc9a743afc735dd21edb3ae6aa710d to your computer and use it in GitHub Desktop.
| FROM debian:buster-slim | |
| WORKDIR /sphere | |
| RUN apt-get update --fix-missing \ | |
| && apt-get install -y \ | |
| curl \ | |
| mysql-common \ | |
| && apt-get clean; | |
| # libmysql Dependency | |
| RUN curl -L -o libmysqlclient.deb http://security.ubuntu.com/ubuntu/pool/main/m/mysql-5.7/libmysqlclient20_5.7.31-0ubuntu0.18.04.1_amd64.deb | |
| RUN echo 'a457f514e80ab609b3aee4dc7c6e7a0e59f29d9d4282f2d6f5ce47c49c2895fb libmysqlclient.deb' | sha256sum --check --status \ | |
| && dpkg -i libmysqlclient.deb \ | |
| && rm -rf libmysqlclient.deb \ | |
| && rm -rf libmysqlclient.deb.sha256 | |
| # Install Sphere | |
| RUN curl -L -o SphereSvrX-linux64-nightly.tar.gz https://forum.spherecommunity.net/sshare.php?downproj=64 \ | |
| && tar -xzf SphereSvrX-linux64-nightly.tar.gz \ | |
| && rm -rf SphereSvrX-linux64-nightly.tar.gz | |
| RUN mv /sphere/build-64/bin64/* /sphere \ | |
| && rm -rf /sphere/build-64 | |
| # Agree with nightly build | |
| RUN sed -i 's/\[SPHERE\]/[SPHERE]\nAGREE=1/' sphere.ini | |
| # Clean up | |
| RUN apt-get remove --purge -y curl; | |
| RUN apt-get autoremove -y |
Here is my Dockerfile:
FROM debian:stable
MAINTAINER Stefan Ritter
# Install needed packages
RUN apt update
RUN apt install -y wget mysql-common
# Create directories
RUN mkdir /sphereserver
# Binary is linked to libmysqlclient.so.20
RUN wget http://security.ubuntu.com/ubuntu/pool/main/m/mysql-5.7/libmysqlclient20_5.7.35-0ubuntu0.18.04.1_amd64.deb
RUN dpkg -i libmysqlclient20_5.7.35-0ubuntu0.18.04.1_amd64.deb
# Get sphere
RUN wget https://forum.spherecommunity.net/sshare.php?downproj=64 -O sphereserver.tar.gz
RUN tar xf sphereserver.tar.gz -C /sphereserver
RUN cp /sphereserver/build-64/bin64/SphereSvrX64_nightly /sphereserver/spheresvr
# Cleanup
RUN rm sphereserver.tar.gz libmysqlclient20_5.7.35-0ubuntu0.18.04.1_amd64.deb
# Run
WORKDIR "/sphereserver"
ENTRYPOINT ["/sphereserver/spheresvr"]
@gideonstar-git
This image for SphereServerX was an experiment that I did at the time:
I used to use the 0.56b version
The docker for that server was here: https://gitlab.com/infernalholm/sphere-scriptpack/-/blob/master/Dockerfile
and the base image was here: https://gitlab.com/infernalholm/sphere-dockerimage/-/blob/master/Dockerfile
The process was split into two steps: Build a docker image with the sphereserver (there was no point in having a entrypoint as it would never be able to run without the required files)
then build a image specific for my shard (so copying the multi, scripts, save folders...)
it did a bit more than that but you can use it as reference.
I just solved it by adding "tty: true" and "stdin_open: true" to my docker-compose.yml. "spheresvr" seems to need a tty, so that's the solution. In the end I came up with this working version:
Ohh... That makes perfect sense! Totally forgot that spheresrv expects user inputs after boot. Which made take a look at the Helm chart I was using at the time and the tty flag is indeed enabled for that container!
I have an almost identical Dockerfile. When I start the server manually, it also runs. But when I create an ENTRYPOINT, then I get an "Aborted (core dumped)". Have you possibly found a solution for this?
Greetings