简体   繁体   中英

Start docker-compose automatically on EC2 startup

I have a linux AMI 2 AWS instance with some services orchestrated via docker-compose, and I am using docker-compose up or docker-compose start commands to start them all. Now I am in the process to start/stop my ec2 instance automatically every day, but once it is started, I want to run some ssh to be able to change to the directory where docker-compose.yml file is, and then start it.

something like:

#!
cd /mydirectory
docker-compose start

How can I achieve that?

Thanks

I would recommend using cron for this as it is easy. Most of the corn supports non-standard instructions like @daily , @weekly , @monthly , @reboot .

You can put this either in a shell script and schedule that in crontab as @reboot /path/to/shell/script
or
you can specify the docker-compose file using the absolute path and directly schedule it in crontab as @reboot docker-compose -f /path/to/docker-compose.yml start

Other possibilities:

  1. Create a systemd service and enable it. All the enabled systems services will be started on powering. (difficulty: medium)
  2. Put scripts under init.d and link it to rc*.d directory. These scripts are also started based on the priority. (difficulty: medium)

Bonus:

If you specify restart policy in the docker-compose file for a container it will autostart if you reboot or switch on the server. Reference

Consider using Amazon Elastic Container Service (Amazon ECS) which can orchestrate docker containers and take care of your underlying OSes.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM