Docker Alpine linux running 2 programs

I would suggest to look at supervisord approach. You can find how to use it in docker documentation.

Some example:

1. Dockerfile is:

FROM alpine:latest
RUN apk update && apk add --no-cache supervisor openssh nginx
COPY supervisord.conf /etc/supervisord.conf
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]

2. supervisord.conf is:

[supervisord]
nodaemon=true

[program:sshd]
command=/usr/sbin/sshd -D

[program:nginx]
command=nginx -c /etc/nginx/nginx.conf

You would need to run the first program in background for the second line of your script to execute.

Whenever you have two processes which must run inside one container, there is the risk of zombie processes (ie the container won't pass correctly the SIGKILL signal to all processes).
Use as your base image phusion/baseimage-docker: it is made for managing multiple processes.