I am new to Docker and WebSockets. I am using docker in my one of the laravel project. I have followed steps from the following link to setup dockerlaravel+docker. Also, I installed WebSockets from this link. My docker is running successfully after following the steps.
Now I want WebSockets to run automatically when the docker container starts. For it, I have added following code to supervisord-app.conf
[program:websockets]
command=/usr/bin/php /var/www/html/websocket-service/artisan websockets:serve
numprocs=1
autostart=true
autorestart=true
user=www-data-new
Following is my app.dockerfile
FROM php:7-fpm-alpine
RUN apk --update add wget \
curl \
git \
grep \
build-base \
libmemcached-dev \
libmcrypt-dev \
libxml2-dev \
imagemagick-dev \
pcre-dev \
libtool \
make \
autoconf \
g++ \
cyrus-sasl-dev \
libgsasl-dev \
supervisor
RUN docker-php-ext-install mysqli pdo pdo_mysql tokenizer xml
RUN pecl channel-update pecl.php.net \
&& pecl install memcached \
&& pecl install imagick \
&& pecl install mcrypt-1.0.3 \
&& docker-php-ext-enable memcached \
&& docker-php-ext-enable imagick \
&& docker-php-ext-enable mcrypt
RUN rm /var/cache/apk/* && \
mkdir -p /var/www
COPY supervisord-app.conf /etc/supervisord.conf
ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"]
Following is my docker-compose.yml file
version: '2'
services:
app:
build:
context: ./
dockerfile: app.dockerfile
working_dir: /var/www/html
volumes:
- ./:/var/www/html
environment:
- DB_PORT=${DB_PORT}
- DB_HOST=${DB_HOST}
web:
build:
context: ./
dockerfile: web.dockerfile
working_dir: /var/www/html
volumes_from:
- app
ports:
- 8080:80
database:
image: mysql:5.7
volumes:
- dbdata:/var/lib/mysql
environment:
- MYSQL_DATABASE=${DB_DATABASE}
- MYSQL_USER=${DB_USERNAME}
- MYSQL_PASSWORD=${DB_PASSWORD}
- MYSQL_ROOT_PASSWORD=
ports:
- 33061:3306
volumes:
dbdata:
Docker runs successfully but my WebSocket server does not start with it. Can anyone help me how to do it?