Is there a simple Temporal docker image or can I make one?

I want to work with a development Temporal server running on my desktop. When I download the tarred binary executable from here I can unpack it and run it and it starts immediately and works with the web UI and everything without any problem.

Is there a docker image that behaves the same way? I looked here and the first thing I notice is that I must choose what database to use, which I don’t even have to think about with the linux binary version, and then when I try to run some of these with docker compose they take minutes and minutes to get going and then ultimately fail.

Is there a docker image that just runs the working binary?

I tried making one using this Dockerfile:

FROM alpine:latest
ARG TARFILE=temporal_cli_latest_linux_amd64.tar.gz
RUN wget 'https://temporal.download/cli/archive/latest?platform=linux&arch=amd64' -O $TARFILE
RUN tar xf $TARFILE
RUN rm $TARFILE
RUN mv temporal /usr/local/bin
EXPOSE 7233 8233 34897
CMD ["temporal", "server", "start-dev"]

When I run it, strangely the only output I see is:

Server:  localhost:7233
UI:      http://localhost:8233
Metrics: http://localhost:37059/metrics

rather than all the output I get when I run the linux binary.

The command I ran is docker run -p 8233:8233 -p 7233:7233 -p 34897:34897 myimage

but my web browser finds nothing on my local port 8233.

Is there an existing docker image that is just a containerized version of the published linux binary? If not, is there I way I can change my Dockerfile or run command to have a container that behaves the same as the linux binary? Thanks!

Hi @mackler

I tried making one using this Dockerfile:

try CMD ["temporal", "server", "start-dev", "--ui-ip=0.0.0.0"]

maybe there is a better way

Let me know if it helps,
Antonio

1 Like

That did it, thank you!!

If there‘s a better way, this will do until that comes along.

I’m quite curious why this image is absent from the temporalio images on hub.docker.com (or maybe it’s there and I’m missing it). All I’ve done so far is to see the web UI so maybe there’s a problem I don’t know about. I’m wondering if the --up-ip option should be --ip so the frontend service is reachable; I guess I’ll learn that real soon. Anyway, so far it looks the same as running the linux binary without the container.

Thanks again!

Update: yes I did have to change it to:

CMD ["temporal", "server", "start-dev", "--ip=0.0.0.0"]