-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathDockerfile
71 lines (65 loc) · 2.18 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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
FROM erlang:22-slim
LABEL maintainer="Denis Fakhrtdinov <[email protected]>"
# Installing required tools
RUN apt-get update -y && apt-get install -y bash make gcc g++ git curl lsof netcat nano
RUN mkdir -p /tmp
# Running build
COPY . src
RUN rm -rf src/_build src/log/*
RUN cd src && make get-deps release-prod
# Copying release
RUN mkdir -p /opt/
RUN mkdir -p /tmp/erl_pipes/
RUN cp -R src/_build/prod/rel/marvin /opt/.
RUN mkdir -p /var/log/marvin/
# Cleanup
RUN rm -rf src
# Environment
ENV PATH="/opt/marvin/bin:$PATH"
ENV RELX_REPLACE_OS_VARS=true
# VMARGS
ENV MARVIN_VMARGS_SNAME=marvin
ENV MARVIN_VMARGS_COOKIE=marvin-cookie
ENV MARVIN_VMARGS_LIMIT_ETS=1024
ENV MARVIN_VMARGS_LIMIT_PROCESSES=64535
ENV MARVIN_VMARGS_LIMIT_PORTS=1024
ENV MARVIN_VMARGS_LIMIT_ATOMS=1048576
ENV MARVIN_VMARGS_ASYNC_THREADS=8
ENV MARVIN_VMARGS_KERNEL_POLL=true
ENV MARVIN_VMARGS_SMP=auto
# APP/Discord
ENV MARVIN_APP_ACCESS_TOKEN=NOT-DEFINED
ENV MARVIN_APP_API_HOST=discordapp.com
ENV MARVIN_APP_API_PORT=443
ENV MARVIN_APP_API_ROOT_URL=/api
ENV MARVIN_APP_API_GATEWAY_URL=/gateway/bot
ENV MARVIN_APP_GATEWAY_PORT=443
ENV MARVIN_APP_GATEWAY_PROTOVER=6
ENV MARVIN_APP_GATEWAY_COMPRESS=false
ENV MARVIN_APP_GATEWAY_LARGE_THRESHOLD=50
ENV MARVIN_APP_SYSINFO_LIBRARY_NAME=Marvin
ENV MARVIN_APP_SYSINFO_LIBRARY_WEB=http://shizzard.github.io/marvin
ENV MARVIN_APP_LOGGER_LOG_ROOT=/var/log/marvin/
ENV MARVIN_APP_LOGGER_LOG_LEVEL=error
# APP/GPT
ENV MARVIN_APP_OPENAI_ACCESS_TOKEN=NOT-DEFINED
ENV MARVIN_APP_OPENAI_MODEL=gpt-3.5-turbo
ENV MARVIN_APP_OPENAI_HOST=api.openai.com
ENV MARVIN_APP_OPENAI_PORT=443
ENV MARVIN_APP_OPENAI_ROOT_URL=/v1/chat/completions
# GUILD
ENV MARVIN_APP_GUILD_CONFIG_ROOT=/tmp/
ENV MARVIN_APP_GUILD_CONFIG_FILENAME_TEMPLATE=guild_{{guild_id}}_config.json
ENV MARVIN_APP_PLUGIN_CONFIG_ROOT=/tmp/
ENV MARVIN_APP_PLUGIN_CONFIG_FILENAME_TEMPLATE=plugin_{{plugin_id}}_{{guild_id}}_config.json
# STORAGE
ENV MARVIN_STORAGE_DB_POOL_SIZE=20
ENV MARVIN_STORAGE_DB_POOL_OVERFLOW=20
ENV MARVIN_STORAGE_DB_NAME=marvin
ENV MARVIN_STORAGE_DB_HOST=NOHOST
ENV MARVIN_STORAGE_DB_PORT=27017
# Runtime
EXPOSE 8080
HEALTHCHECK --interval=10s --timeout=5s --start-period=1m --retries=5 CMD ["marvin", "ping"]
ENTRYPOINT ["marvin"]
CMD ["foreground"]