Docker Community Forums

Share and learn in the Docker community.

Running docker-compose on ec2 docker-machine

I’m trying to deploy two services on a single ec2 instance with docker-machine and docker-compose.

Here’s what I’m doing:

docker-machine create --driver amazonec2 --engine-install-url=https://web.archive.org/web/20170623081500/https://get.docker.com mymachine

docker-machine ssh mymachine -- mkdir -p /home/ubuntu/myapp

git clone https://github.com/myapp/service1.git
docker-machine scp -r ./service1 mymachine:/home/ubuntu/myapp/
rm -rf ./service1

git clone https://github.com/myapp/service2.git
docker-machine scp -r ./service2 mymachine:/home/ubuntu/myapp/
rm -rf ./service2

docker-machine env mymachine
//export DOCKER_TLS_VERIFY="1"
//export DOCKER_HOST="something"
//export DOCKER_CERT_PATH="something"
//export DOCKER_MACHINE_NAME="mymachine"

eval $(docker-machine env mymachine)

docker-machine active
//mymachine

docker-compose -f ./docker-compose-prod.yml up -d

I get this error: build path /home/ubuntu/myapp/service1 either does not exist, is not accessible, or is not a valid URL.

relevant parts of docker-compose-prod.yml:

version: '3'

services:
  service1:
    build:  /home/ubuntu/myapp/service1

  service2:
    build:  /home/ubuntu/myapp/service2

The path is fine when checking through ssh, it seems like docker-compose is still trying to work on my local machine, it’s happy when I provide it with a build path that exists locally.

How do I get docker-compose to run on the remote docker-machine?

I’m new to this, so hopefully I’m missing something trivial.
Thanks for the help!