Skip to content

Using best practices: rebuild everyday, multi-stage builds, non-root, upx, labels, alpine, etc

License

Notifications You must be signed in to change notification settings

peterzhuamazon/rclone-in-docker

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

 

Brought to you by

FirePress

FirePress.org | play-with-ghost | GitHub | Twitter

 

What is this?

rclone in a docker container along a CI (continuous integration) to build the Docker image.

Features

  • an everyday build and on every commit (CI)
  • a build from the sources (CI)
  • a logic of four docker tags on the master branch (CI) and logic of three docker tags on any other branches (CI)
  • few UAT tests (CI)
  • an automatic push of the README to Dockerhub (CI)
  • Slack notifications when a build succeed (Job 2) (CI)
  • a multi-stage build (Dockerfile)
  • an alpine base docker image (Dockerfile)
  • a non-root user (Dockerfile)
  • having this app running as PID 1 under tiny (Dockerfile)
  • Labels (Dockerfile)
  • this app is compressed using UPX (Dockerfile)
  • a small footprint docker image's size (Dockerfile)
  • utility.sh based on bash-script-template
  • and probably more, but hey, who is counting?

About rclone

rclone logo

GitHub | Website | Documentation | Download | Installation | Forum

Rclone ("rsync for cloud storage") is a command line program to sync files and directories to and from different cloud storage providers.

At FirePress we use rclone to do cold storage backup outside our clusters.

How to use it, Docker hub

Expand content (click here).

How to use it

Example 1

img_rclone="devmtl/rclone:1.49.1_2019-08-30_12H18s03_4984c21"

docker run -it --rm \
  --name rclone-runner \
  ${img_rclone}

or overide the default command:

img_rclone="devmtl/rclone:1.49.1_2019-08-30_12H18s03_4984c21"
run_this="rclone --version"

docker run -it --rm \
  --name rclone-runner \
  -v /localpath/data:/data" \
  -v /localpath/rclone.conf:/home/usr_rclone/.config/rclone/rclone.conf \
  ${img_rclone} \
  sh -c "${run_this}"

Example 2

Real life example to uplaod on B2

img_rclone="devmtl/rclone:1.49.1_2019-08-30_12H18s03_4984c21"
run_this="rclone copy --transfers 10 --include ${FILE_TO_UPLOAD} /data ${B2_BUCKET_DESTINATION}"

docker run --rm \
  --name rclone-runner \
  -v /localpath/data:/data" \
  -v /localpath/rclone.conf:/home/usr_rclone/.config/rclone/rclone.conf \
  ${IMG_rclone} \
  sh -c "${run_this}"

CI configuration & Github Actions

See README-CI.md

Docker hub

Always check on docker hub the most recent build:
https://hub.docker.com/r/devmtl/noti/tags

You should use this tag format in production.
${VERSION} _ ${DATE} _ ${HASH-COMMIT}

devmtl/rclone:1.49.1_2019-08-30_12H18s03_4984c21

These tags are also available to quickly test stuff:

docker run --rm -it devmtl/rclone:1.49.1
docker run --rm -it devmtl/rclone:stable
docker run --rm -it devmtl/rclone:latest

Related docker images

See README-related.md

Website hosting

If you are looking for an alternative to WordPress, Ghost might be the CMS you are looking for. Check out our hosting plans.

ghost-v2-review

Why, Contributing, License

Expand content (click here).

Why all this work?

Our mission is to empower freelancers and small organizations to build an outstanding mobile-first website.

Because we believe your website should speak up in your name, we consider our mission completed once your site has become your impresario.

Find me on Twitter @askpascalandy.

The FirePress Team 🔥📰

Contributing

The power of communities pull request and forks means that 1 + 1 = 3. You can help to make this repo a better one! Here is how:

  1. Fork it
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request

Check this post for more details: Contributing to our Github project. Also, by contributing you agree to the Contributor Code of Conduct on GitHub.

License

About

Using best practices: rebuild everyday, multi-stage builds, non-root, upx, labels, alpine, etc

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 52.9%
  • Dockerfile 47.1%