-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathDockerfile
51 lines (41 loc) · 1.94 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
FROM python:3.11-slim
ARG BUILD_DATE=""
ARG BUILD_VERSION="dev"
LABEL maintainer="OpenTTD Dev Team <info@openttd.org>"
LABEL org.opencontainers.image.created=${BUILD_DATE}
LABEL org.opencontainers.image.authors="OpenTTD Dev Team <info@openttd.org>"
LABEL org.opencontainers.image.url="https://github.com/OpenTTD/bananas-server"
LABEL org.opencontainers.image.source="https://github.com/OpenTTD/bananas-server"
LABEL org.opencontainers.image.version=${BUILD_VERSION}
LABEL org.opencontainers.image.licenses="GPLv2"
LABEL org.opencontainers.image.title="OpenTTD's content server (in-game)"
LABEL org.opencontainers.image.description="This is the server serving the in-game client for OpenTTD's content service, called BaNaNaS."
# git is needed to clone BaNaNaS
# openssh-client is needed to git clone over ssh
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
openssh-client \
&& rm -rf /var/lib/apt/lists/*
# We will be connecting to github.com, so populate their key already.
RUN mkdir -p ~/.ssh \
&& ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
WORKDIR /code
COPY requirements.txt \
LICENSE \
README.md \
region-un-m49.csv \
region-iso-3166-1.json \
region-iso-3166-2.json \
/code/
# Needed for Sentry to know what version we are running
RUN echo "${BUILD_VERSION}" > /code/.version
RUN pip --no-cache-dir install -U pip \
&& pip --no-cache-dir install -r requirements.txt
# Validate that what was installed was what was expected
RUN pip freeze 2>/dev/null > requirements.installed \
&& diff -u --strip-trailing-cr requirements.txt requirements.installed 1>&2 \
|| ( echo "!! ERROR !! requirements.txt defined different packages or versions for installation" \
&& exit 1 ) 1>&2
COPY bananas_server /code/bananas_server
ENTRYPOINT ["python", "-m", "bananas_server"]
CMD ["--bind", "0.0.0.0", "--storage", "local", "--index", "local"]