Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 4 additions & 36 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,27 +1,3 @@
# Build stage for Erlang
FROM erlang:24 AS erlang-build
WORKDIR /app

# Copy Erlang-specific files
COPY rebar.config ./
COPY config ./config/
COPY src/erlang ./src/erlang/
COPY microservices ./microservices/

# Install dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends \
ffmpeg \
libavcodec-extra \
build-essential \
gcc \
make \
&& apt-get clean && \
rm -rf /var/lib/apt/lists/*

# Compile Erlang
RUN rebar3 get-deps && rebar3 compile

# Build stage for Scala
FROM ubuntu:24.04 AS scala-build
WORKDIR /app
Expand Down Expand Up @@ -57,19 +33,12 @@ ENV NODE_NAME_1=node1@127.0.0.1 \
COOKIE=erlangcast_cookie \
DEBIAN_FRONTEND=noninteractive

# Install Erlang and runtime dependencies
# Install runtime dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends \
erlang \
erlang-base \
erlang-dev \
erlang-tools \
ffmpeg \
libavcodec-extra \
openjdk-11-jre-headless \
netcat-openbsd \
curl \
rebar3 \
&& apt-get clean && \
rm -rf /var/lib/apt/lists/*

Expand All @@ -78,20 +47,19 @@ RUN mkdir -p /app/log /app/media/input /app/media/output && \
chmod -R 777 /app/log /app/media

# Copy artifacts and configs
COPY --from=erlang-build /app/_build /app/_build
COPY --from=scala-build /app/target /app/target
COPY config ./config/

# Create startup script
RUN echo '#!/bin/sh\n\
epmd -daemon\n\
NODE_NAME=$NODE_NAME_1 COOKIE=$COOKIE rebar3 shell & \
NODE_NAME=$NODE_NAME_2 COOKIE=$COOKIE rebar3 shell\n' > /usr/local/bin/start.sh && \
NODE_NAME=$NODE_NAME_1 COOKIE=$COOKIE sbt run & \
NODE_NAME=$NODE_NAME_2 COOKIE=$COOKIE sbt run\n' > /usr/local/bin/start.sh && \
chmod +x /usr/local/bin/start.sh

EXPOSE 8080 8081 9100-9155 9200-9255

HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD nc -z localhost 8080 || exit 1

CMD ["/usr/local/bin/start.sh"]
CMD ["/usr/local/bin/start.sh"]
Loading
Loading