So I'm working on a docker compose file to deploy my Go web server. My server uses mongo, so I added a data volume container and the mongo service in docker compose.
Then I wrote a Dockerfile in order to build my Go project, and finally run it.

However, there is another step that must be done. Once my project has been compiled, I have to run the following command:
`./my-project -setup`

This will add some necessary information to the database, and the information **only needs to be added once**.
I can't however add this step on the Dockerfile (in the build process) because mongo must already be started.

So, how can I achieve this? Even if I restart the server and then run again `docker-compose up` I don't want this command to be executed again.

I think I'm missing some Docker understanding, because I don't actually understand everything about data volume containers (are they just *stopped* containers that mount a volume?).
Also, if I restart the server, and then run `docker-compose up`, which commands will be run? Will it just start the same container that was now stopped with the given CMD?

In any case, here is my docker-compose.yml:

```
version: '2'
services:
  mongodata:
    image: mongo:latest
    volumes:
      - /data/db
    command: --break-mongo
  mongo:
    image: mongo:latest
    volumes_from:
      - mongodata
    ports:
      - "28001:27017"
    command: --smallfiles --rest --auth
  my_project:
    build: .
    ports:
      - "6060:8080"
    depends_on:
      - mongo
      - mongodata
    links:
      - mongo

```

And here is my Dockerfile to build my project image:

```
FROM golang

ADD . /go/src/my_project
RUN cd /go/src/my_project && go get
RUN go install my_project
RUN my_project -setup
ENTRYPOINT /go/bin/my_project

EXPOSE 8080

```