mirror of
https://github.com/ossrs/srs.git
synced 2025-02-13 03:41:55 +00:00
When using Docker, logs are usually printed to console (stdout and stderr). However, since Docker detection occurs late, after log initialization, the default log output may be incorrect. In Docker, logs may still be written to a file instead of the console as expected. Additionally, the Dockerfile has been improved with a new environment variable `SRS_IN_DOCKER=on` to clearly indicate a Docker environment. If automatic Docker detection fails, the configuration will be read, and this variable will correctly inform SRS that it's in a Docker environment. Lastly, the default configuration values have been improved for Docker environments. By default, `SRS_LOG_TANK=console` and daemon mode is disabled. --------- Co-authored-by: john <hondaxiao@tencent.com>
61 lines
2 KiB
Docker
61 lines
2 KiB
Docker
ARG ARCH
|
|
ARG IMAGE=ossrs/srs:ubuntu20
|
|
FROM ${ARCH}${IMAGE} AS build
|
|
|
|
ARG CONFARGS
|
|
ARG MAKEARGS
|
|
ARG INSTALLDEPENDS
|
|
ARG BUILDPLATFORM
|
|
ARG TARGETPLATFORM
|
|
ARG SRS_AUTO_PACKAGER
|
|
RUN echo "BUILDPLATFORM: $BUILDPLATFORM, TARGETPLATFORM: $TARGETPLATFORM, PACKAGER: ${#SRS_AUTO_PACKAGER}, CONFARGS: ${CONFARGS}, MAKEARGS: ${MAKEARGS}, INSTALLDEPENDS: ${INSTALLDEPENDS}"
|
|
|
|
# https://serverfault.com/questions/949991/how-to-install-tzdata-on-a-ubuntu-docker-image
|
|
ENV DEBIAN_FRONTEND noninteractive
|
|
|
|
# To use if in RUN, see https://github.com/moby/moby/issues/7281#issuecomment-389440503
|
|
# Note that only exists issue like "/bin/sh: 1: [[: not found" for Ubuntu20, no such problem in CentOS7.
|
|
SHELL ["/bin/bash", "-c"]
|
|
|
|
# Install depends tools.
|
|
RUN if [[ $INSTALLDEPENDS != 'NO' ]]; then \
|
|
apt-get update && apt-get install -y gcc make g++ patch unzip perl git libasan5; \
|
|
fi
|
|
|
|
# Copy source code to docker.
|
|
COPY . /srs
|
|
WORKDIR /srs/trunk
|
|
|
|
# Build and install SRS.
|
|
# Note that SRT is enabled by default, so we configure without --srt=on.
|
|
# Note that we have copied all files by make install.
|
|
RUN ./configure --gb28181=on ${CONFARGS} && make ${MAKEARGS} && make install
|
|
|
|
############################################################
|
|
# dist
|
|
############################################################
|
|
FROM ${ARCH}ubuntu:focal AS dist
|
|
|
|
ARG BUILDPLATFORM
|
|
ARG TARGETPLATFORM
|
|
RUN echo "BUILDPLATFORM: $BUILDPLATFORM, TARGETPLATFORM: $TARGETPLATFORM"
|
|
|
|
# Expose ports for streaming @see https://github.com/ossrs/srs#ports
|
|
EXPOSE 1935 1985 8080 5060 9000 8000/udp 10080/udp
|
|
|
|
# FFMPEG 4.1
|
|
COPY --from=build /usr/local/bin/ffmpeg /usr/local/srs/objs/ffmpeg/bin/ffmpeg
|
|
# SRS binary, config files and srs-console.
|
|
COPY --from=build /usr/local/srs /usr/local/srs
|
|
|
|
# Test the version of binaries.
|
|
RUN ldd /usr/local/srs/objs/ffmpeg/bin/ffmpeg && \
|
|
/usr/local/srs/objs/ffmpeg/bin/ffmpeg -version && \
|
|
ldd /usr/local/srs/objs/srs && \
|
|
/usr/local/srs/objs/srs -v
|
|
|
|
# Default workdir and command.
|
|
WORKDIR /usr/local/srs
|
|
ENV SRS_DAEMON=off SRS_IN_DOCKER=on
|
|
CMD ["./objs/srs", "-c", "conf/docker.conf"]
|
|
|