Giter Site home page Giter Site logo

docker-diff's Introduction

docker-diff

๐Ÿณ Compare Docker images

Installation

On macOS via Homebrew

brew install moul/moul/docker-diff

Or brew tap moul/moul and then brew install docker-diff

Linux

zsh

sudo git clone https://github.com/moul/docker-diff /opt/docker-diff 
sudo ln -s /opt/docker-diff/docker-diff /usr/local/bin
echo "source /opt/docker-diff/docker-diff-completion" >> ~/.zshrc
source ~/.zshrc

Usage

See full examples.


Comparing changes between alpine:3.2 and alpine:3.3.

$ ./docker-diff alpine:3.2 alpine:3.3
7,8c7
< ---s--x--x 9944       bin/bbsuid
< -rwxr-xr-x 800936     bin/busybox
---
> -rwxr-xr-x 809128     bin/busybox
63d61
< lrwxrwxrwx 0          bin/rc-status
82d79
< -rwxr-xr-x 9872       bin/uniso
92,94d88
< drwxr-xr-x 0          etc/acpi/
< drwxr-xr-x 0          etc/acpi/PWRF/
< -rwxr-xr-x 19         etc/acpi/PWRF/00000080
105,106c99,100
< -rw-r--r-- 45         etc/apk/repositories
< -rw-r--r-- 12         etc/apk/world
---
> -rw-r--r-- 95         etc/apk/repositories
> -rw-r--r-- 51         etc/apk/world
108,129d101
< -rw-r--r-- 328        etc/conf.d/bootmisc
< -rw-r--r-- 876        etc/conf.d/consolefont
< -rw-r--r-- 55         etc/conf.d/cron
< -rw-r--r-- 348        etc/conf.d/devfs
< -rw-r--r-- 117        etc/conf.d/dmesg
< -rw-r--r-- 1402       etc/conf.d/fsck
< -rw-r--r-- 59         etc/conf.d/hostname
< -rw-r--r-- 857        etc/conf.d/hwclock
< -rw-r--r-- 911        etc/conf.d/keymaps
< -rw-r--r-- 105        etc/conf.d/killprocs
< -rw-r--r-- 14         etc/conf.d/klogd
< -rw-r--r-- 121        etc/conf.d/localmount
< -rw-r--r-- 124        etc/conf.d/modloop
< -rw-r--r-- 898        etc/conf.d/modules
< -rw-r--r-- 1335       etc/conf.d/netmount
< -rw-r--r-- 106        etc/conf.d/ntpd
< -rw-r--r-- 48         etc/conf.d/rdate
< -rw-r--r-- 357        etc/conf.d/staticroute
< -rw-r--r-- 16         etc/conf.d/syslog
< -rw-r--r-- 76         etc/conf.d/tmpfiles
< -rw-r--r-- 282        etc/conf.d/urandom
< -rw-r--r-- 40         etc/conf.d/watchdog
131c103
< -rw-r--r-- 283        etc/crontabs/root
---
> -rw------- 283        etc/crontabs/root
133c105
< -rw-r--r-- 810        etc/group
---
> -rw-r--r-- 683        etc/group
137,185c109
[...]

Comparing changes between ubuntu:wily and ubuntu-debootstrap:wily.

$ ./docker-diff ubuntu:wily ubuntu-debootstrap:wily
Unable to find image 'ubuntu:wily' locally
wily: Pulling from library/ubuntu
cde2d46a079b: Pulling fs layer
e189717d7053: Pulling fs layer
7147b2632305: Pulling fs layer
d8a164f81acc: Pulling fs layer
7147b2632305: Verifying Checksum
7147b2632305: Download complete
e189717d7053: Verifying Checksum
e189717d7053: Download complete
d8a164f81acc: Verifying Checksum
d8a164f81acc: Download complete
cde2d46a079b: Verifying Checksum
cde2d46a079b: Download complete
cde2d46a079b: Pull complete
e189717d7053: Pull complete
7147b2632305: Pull complete
d8a164f81acc: Pull complete
Digest: sha256:f399d4101e8e41196b9bc58a96e63d17e3d5fcef702df2bda05e166dc3b5ac3c
Status: Downloaded newer image for ubuntu:wily
Unable to find image 'ubuntu-debootstrap:wily' locally
wily: Pulling from library/ubuntu-debootstrap
15b60992a765: Pulling fs layer
56590e6e34d5: Pulling fs layer
56590e6e34d5: Verifying Checksum
56590e6e34d5: Download complete
15b60992a765: Verifying Checksum
15b60992a765: Download complete
15b60992a765: Pull complete
56590e6e34d5: Pull complete
Digest: sha256:0d464ac0c99ecb124f5cc078b2f3db5e33699d030d90c27164af38a721a2b7f2
Status: Downloaded newer image for ubuntu-debootstrap:wily
...
13,14c13,14
< -rwxr-xr-x 101928     bin/df
< -rwxr-xr-x 118272     bin/dir
---
> -rwxr-xr-x 101960     bin/df
> -rwxr-xr-x 118368     bin/dir
18c18
< -rwxr-xr-x 31264      bin/echo
---
> -rwxr-xr-x 31296      bin/echo
27a28
> -rwxr-xr-x 363680     bin/ip
33c34
< -rwxr-xr-x 118272     bin/ls
---
> -rwxr-xr-x 118368     bin/ls
34a36
> -rwxr-xr-x 474352     bin/machinectl
42c44
< -rwxr-xr-x 670304     bin/networkctl
---
> -rwxr-xr-x 670296     bin/networkctl
44a47,48
> -rwsr-xr-x 70768      bin/ping
> -rwsr-xr-x 61520      bin/ping6
46c50
< -rwxr-xr-x 31360      bin/pwd
---
> -rwxr-xr-x 31392      bin/pwd
50c54
[...]

See full examples.

Sub-project

License

MIT

docker-diff's People

Contributors

aarondmarasco-vsi avatar azr avatar garex avatar joenyland avatar moul avatar schnatterer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

docker-diff's Issues

Release new version

please bake new release, don't forget to update brew recipe.

I was really puzzled finding that I installed the tool using instructions from this project readme, and the installed script is totally different from what I I see in GitHub.

Appears the brew installs old version from 2017: https://github.com/moul/docker-diff/releases/tag/v1.1

โž” brew info docker-diff
moul/moul/docker-diff: stable 1.1, HEAD
Compare Docker images
https://github.com/moul/docker-diff
/usr/local/Cellar/docker-diff/1.1 (7 files, 9.2KB) *
  Built from source on 2020-04-29 at 19:41:41
From: https://github.com/moul/homebrew-moul/blob/master/docker-diff.rb
==> Options
--HEAD
	Install HEAD version
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh functions have been installed to:
  /usr/local/share/zsh/site-functions
โž”

Diff using file content instead of file size?

It looks like the diff this produces is based on the file names and sizes as listed by export/tar. What happens if a file changes but stays the same length?

One option could be to compare hashes of the files in addition to the names. Even just including the modified time in the diff would help.

Move to using your own Homebrew tap

Migrated from 3000ebb#commitcomment-21254244.

It would be better for you to host your own Homebrew tap to install this script from.

As it stands, if I change the url or head in the formula from my tap which the README currently tells people to install from to, say my fork, people will be installing from my fork and not the original repo here.

I should have suggested this before I raised the PR that you asked for, but I've only just realised this now, sorry.

On my tap, this commit moves to install from my fork when my tap is used. If you're happy for users to install from my tap and my fork then I've got no issues with that, but I assumed you would prefer to retain control over this? ๐Ÿ™‚

Create Docker Image for docker-diff

It would be most convenient to skip installation and use docker-diff directly from a docker image, like so for example:

docker run moul/docker-diff:1.1 alpine:3.2 alpine:3.3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.