Wowza Community

Start docker in a Wowza container

Hello together,

I just came into the world of wowza and figure out that it’s not working as descripted here:

https://www.wowza.com/docs/how-to-set-up-wowza-streaming-engine-using-docker

I started with pulling the docker container, so far so good.

I was able to run the docker container as descripted in documentation (I hided my IP :wink: ):

docker run -it --name WowzaVideoStreamingServer --restart always --expose 1935/tcp --expose 8086/tcp --expose 8087/tcp --expose 8088/tcp --publish 1935:1935 --publish 9086:8086 --publish 9087:8087 --publish 9088:8088 --volume /var/log/wowza:/usr/local/WowzaStreamingEngine/logs --entrypoint /sbin/entrypoint.sh --env WSE_MGR_USER=wowza_server --env WSE_MGR_PASS=lj4512hlkc81 --env WSE_LIC=EDEV4-KedkT-wvBW9-u9BVw-wppaC-6EBzQ-4keUYZ6znw --env WSE_IP_PARAM=000.000.000.000 wowzamedia/wowza-streaming-engine-linux:latest

Server was up, cool, but nothing is working so far. Good to know, where the logs are, after checking the logs I found this:

ERROR  server  comment 2018-01-15  17:03:26  -  -  -  -  -  0.142  -  -  -  -  -  -  -  -  loadConfigFile: error parsing server config file: (file:///usr/local/WowzaStreamingEngine/conf/Server.xml): org.xml.sax.SAXParseException; systemId: file:///usr/local/WowzaStreamingEngine/conf/Server.xml; lineNumber: 50; columnNumber: 117; The string "--" is not permitted within comments.|at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257)|at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)|at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:177)|at com.wowza.wms.util.ServerUtils.loadConfigFile(ServerUtils.java:224)|at com.wowza.wms.server.Server.a(Server.java:1039)|

Easy going. I run:

docker cp WowzaVideoStreamingServer:/usr/local/WowzaStreamingEngine/conf/Server.xml .

Modify the file and upload it again.

docker cp ./Server.xml WowzaVideoStreamingServer:/usr/local/WowzaStreamingEngine/conf/

Here we go. Next try!

docker restart WowzaVideoStreamingServer

Ok, Server crashed with:

ERROR  server  comment 2018-01-15  17:15:56  -  -  -  -  -  179.313 -  -  -  -  -  -  -  -  error : java.lang.NullPointerException|at com.wowza.wms.util.ApplicationUtils.gs(ApplicationUtils.java:94)|at com.wowza.wms.server.Server.startServer(Server.java:1928)|at com.wowza.wms.server.Server.start(Server.java:1104)|at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)|at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)|

Here I got stucked and didn’t find a solution yet in this forum, can anybody point me maybe to a good solution?

Thanks a lot for replys! :slight_smile:

Best regards

Björn

Hi together,

new day new tries.

I got the idea, that it could maybe hung because of docker version. Here I want to share shortly my docker version information:

[root@install ~]# docker version
Client:
 Version:      17.05.0-ce
 API version:  1.29
 Go version:   go1.7.5
 Git commit:   89658be
 Built:        Thu May  4 22:06:25 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.05.0-ce
 API version:  1.29 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   89658be
 Built:        Thu May  4 22:06:25 2017
 OS/Arch:      linux/amd64
 Experimental: false

Is maybe the docker container build with another API version than 1.29?

I would be glad, if somebody have an idea, what I can try maybe :slight_smile:

Here is also to be complete my modified Server.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Root version="2">
        <Server>
                <Name>Wowza Streaming Engine</Name>
                <Description>Wowza Streaming Engine is robust, customizable, and scalable server software that powers reliable streaming of high-quality video and audio to any device, anywhere.</Description>
                <RESTInterface>
                        <Enable>true</Enable>
                        <IPAddress>*</IPAddress>
                        <Port>8087</Port>
                        <!-- none, basic, digest-->
                        <AuthenticationMethod>digest</AuthenticationMethod>
                        <DiagnosticURLEnable>true</DiagnosticURLEnable>
                        <SSLConfig>
                                <Enable>false</Enable>
                                <KeyStorePath></KeyStorePath>
                                <KeyStorePassword></KeyStorePassword>
                                <KeyStoreType>JKS</KeyStoreType>
                                <SSLProtocol>TLS</SSLProtocol>
                                <Algorithm>SunX509</Algorithm>
                                <CipherSuites></CipherSuites>
                                <Protocols></Protocols>
                        </SSLConfig>
                        <IPWhiteList>127.0.0.1</IPWhiteList>
                        <IPBlackList></IPBlackList>
                        <EnableXMLFile>false</EnableXMLFile>
                        <DocumentationServerEnable>false</DocumentationServerEnable>
                        <DocumentationServerPort>8089</DocumentationServerPort>
                        <!-- none, basic, digest-->
                        <DocumentationServerAuthenticationMethod>digest</DocumentationServerAuthenticationMethod>
                        <Properties>
                        </Properties>
                </RESTInterface>
                <CommandInterface>
                        <HostPort>
                                <ProcessorCount>${com.wowza.wms.TuningAuto}</ProcessorCount>
                                <IpAddress>*</IpAddress>
                                <Port>8083</Port>
                        </HostPort>
                </CommandInterface>
                <AdminInterface>
                        <!-- Objects exposed through JMX interface: Server, VHost, VHostItem, Application, ApplicationInstance, MediaCaster, Module, Client, MediaStream, SharedObject, Acceptor, IdleWorker -->
                        <ObjectList>Server,VHost,VHostItem,Application,ApplicationInstance,MediaCaster,Module,IdleWorker</ObjectList>
                </AdminInterface>
                <Stats>
                        <Enable>true</Enable>
                </Stats>
                <!-- JMXUrl: service:jmx:rmi://localhost:8084/jndi/rmi://localhost:8085/jmxrmi -->
                <JMXRemoteConfiguration>
                        <Enable>false</Enable>
                        <IpAddress>000.000.000.000</IpAddress> <!-- set to localhost or internal ip address if behind NAT -->
                        <RMIServerHostName>000.000.000.000</RMIServerHostName> <!-- set to external ip address or domain name if behind NAT -->
                        <RMIConnectionPort>8084</RMIConnectionPort>
                        <RMIRegistryPort>8085</RMIRegistryPort>
                        <Authenticate>true</Authenticate>
                        <PasswordFile>${com.wowza.wms.ConfigHome}/conf/jmxremote.password</PasswordFile>
                        <AccessFile>${com.wowza.wms.ConfigHome}/conf/jmxremote.access</AccessFile>
                        <SSLSecure>false</SSLSecure>
                </JMXRemoteConfiguration>
                <UserAgents>Shockwave Flash|CFNetwork|MacNetwork/1.0 (Macintosh)</UserAgents>
                <Streams>
                        <DefaultStreamPrefix>mp4</DefaultStreamPrefix>
                </Streams>
                <ServerListeners>
                        <ServerListener>
                                <BaseClass>com.wowza.wms.mediacache.impl.MediaCacheServerListener</BaseClass>
                        </ServerListener>
                        <!--
                        <ServerListener>
                                <BaseClass>com.wowza.wms.plugin.loadbalancer.ServerListenerLoadBalancerListener</BaseClass>
                        </ServerListener>
                        -->
                        <!--
                        <ServerListener>
                                <BaseClass>com.wowza.wms.plugin.loadbalancer.ServerListenerLoadBalancerSender</BaseClass>
                        </ServerListener>
                        -->
                </ServerListeners>
                <VHostListeners>
                        <!--
                        <VHostListener>
                                <BaseClass></BaseClass>
                        </VHostListener>
                        -->
                </VHostListeners>
                <HandlerThreadPool>
                        <PoolSize>${com.wowza.wms.TuningAuto}</PoolSize>
                </HandlerThreadPool>
                <TransportThreadPool>
                        <PoolSize>${com.wowza.wms.TuningAuto}</PoolSize>
                </TransportThreadPool>
                <RTP>
                        <DatagramStartingPort>6970</DatagramStartingPort>
                        <DatagramPortSharing>false</DatagramPortSharing>
                </RTP>
                <Manager>
                        <!-- Properties defined are used by the Manager -->
                        <Properties>
                        </Properties>
                </Manager>
                <Transcoder>
                        <PluginPaths>
                                <QuickSync></QuickSync>
                        </PluginPaths>
                </Transcoder>
                <!-- Properties defined here will be added to the IServer.getProperties() collection -->
                <Properties>
                </Properties>
        </Server>
</Root>

Thanks a lot!

Best regards

Björn

Hi,

maybe another interesting detail could be:

[root@install ~]# vi /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

Would be great if somebody have an idea.

Best regards

Björn

Push, do you need here any other information?