Skip to content

Repository files navigation

Charmbox

Charmbox is an extension of the jujubox container which adds tools for development, testing, and review of Juju Charms.

Usage

Juju Inside Docker

If you already have Docker installed (see below), and you don't want to install Juju on your host machine, the container can be run directly from Docker Hub:

sudo docker run --rm -ti jujusolutions/charmbox

Once inside the container, you can use quickstart to set up Juju with any provider except local, and use bundletester to test a charm:

$ubuntu@ab3d:~/$ juju quickstart
$ubuntu@ab3d:~/$ bundletester -t cs:trusty/ubuntu

Note that local provider is not currently available within the container, but it is possible to use an existing local provider with Charmbox (see below).

Using Charmbox with Existing Juju

If you already have Juju configured, you can use your existing Juju installation, including any environments, with a few extra arguments to the run command:

sudo docker run --rm -ti --net=host -v $HOME/.juju:/home/ubuntu/.juju jujusolutions/charmbox

Using Charmbox with Existing Juju and Local Provider

If you wish to use local provider, you will need to bootstrap from outside the container, but all subsequent operations will work normally within the container:

juju switch local
juju bootstrap
sudo docker run --rm --net=host -v $HOME/.juju:/home/ubuntu/.juju -ti charmbox

Once inside the container, you can use bundletester to test a charm:

$ubuntu@ab3d:~/$ bundletester -t lp:~user/charms/trusty/foo/branch
$ubuntu@ab3d:~/$ exit

Once you are done with the container, make sure you destroy the local provider that you bootstrapped:

juju destroy-environment local

Using Charmbox with Charms on your Host Machine

If you have charms already checked out on your host machine, you can mount the Juju repository subdirectory:

sudo docker run --rm -ti -v $JUJU_REPOSITORY/trusty:/home/ubuntu/trusty jujusolutions/charmbox

At this time, you cannot directly mount $JUJU_REPOSITORY inside the container because it would overwrite /home/ubuntu. Thus, it is recommended that you mount the trusty or precise subdirectories.

Mounting CWD into charmbox for testing

You can map the current working directory into charmbox for testing a single charm:

sudo docker run --rm -ti -v $(pwd):/home/ubuntu/trusty/{charm} jujusolutions/charmbox

Building Charmbox from Source

git clone https://github.com/juju-solutions/charmbox.git && cd charmbox
sudo docker build -t charmbox .
sudo docker run --rm -ti charmbox

Installing Docker

Linux

Install Docker using the package manager for your distro, or get.docker.com.

Docker >= 1.4.1 recommended.

OS X

Docker does not run natively in OS X, so we'll need to use VirtualBox and docker-machine. This is relatively easy for users of brew:

brew install cask
brew cask install virtualbox
brew install docker
brew install docker-machine
docker-machine create -d virtualbox default
docker-machine start default && eval $(docker-machine env default)

When docker-machine finishes, it will prompt you to export Docker environment variables. With that done, you're ready to use docker.

docker run -ti jujusolutions/charmbox

About

Docker container for developing, testing, and reviewing Charms

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - simonklb/charmbox: Docker container for developing, testing, and reviewing Charms · GitHub
Skip to content

Repository files navigation

Charmbox

Charmbox is an extension of the jujubox container which adds tools for development, testing, and review of Juju Charms.

Usage

Juju Inside Docker

If you already have Docker installed (see below), and you don't want to install Juju on your host machine, the container can be run directly from Docker Hub:

sudo docker run --rm -ti jujusolutions/charmbox

Once inside the container, you can use quickstart to set up Juju with any provider except local, and use bundletester to test a charm:

$ubuntu@ab3d:~/$ juju quickstart
$ubuntu@ab3d:~/$ bundletester -t cs:trusty/ubuntu

Note that local provider is not currently available within the container, but it is possible to use an existing local provider with Charmbox (see below).

Using Charmbox with Existing Juju

If you already have Juju configured, you can use your existing Juju installation, including any environments, with a few extra arguments to the run command:

sudo docker run --rm -ti --net=host -v $HOME/.juju:/home/ubuntu/.juju jujusolutions/charmbox

Using Charmbox with Existing Juju and Local Provider

If you wish to use local provider, you will need to bootstrap from outside the container, but all subsequent operations will work normally within the container:

juju switch local
juju bootstrap
sudo docker run --rm --net=host -v $HOME/.juju:/home/ubuntu/.juju -ti charmbox

Once inside the container, you can use bundletester to test a charm:

$ubuntu@ab3d:~/$ bundletester -t lp:~user/charms/trusty/foo/branch
$ubuntu@ab3d:~/$ exit

Once you are done with the container, make sure you destroy the local provider that you bootstrapped:

juju destroy-environment local

Using Charmbox with Charms on your Host Machine

If you have charms already checked out on your host machine, you can mount the Juju repository subdirectory:

sudo docker run --rm -ti -v $JUJU_REPOSITORY/trusty:/home/ubuntu/trusty jujusolutions/charmbox

At this time, you cannot directly mount $JUJU_REPOSITORY inside the container because it would overwrite /home/ubuntu. Thus, it is recommended that you mount the trusty or precise subdirectories.

Mounting CWD into charmbox for testing

You can map the current working directory into charmbox for testing a single charm:

sudo docker run --rm -ti -v $(pwd):/home/ubuntu/trusty/{charm} jujusolutions/charmbox

Building Charmbox from Source

git clone https://github.com/juju-solutions/charmbox.git && cd charmbox
sudo docker build -t charmbox .
sudo docker run --rm -ti charmbox

Installing Docker

Linux

Install Docker using the package manager for your distro, or get.docker.com.

Docker >= 1.4.1 recommended.

OS X

Docker does not run natively in OS X, so we'll need to use VirtualBox and docker-machine. This is relatively easy for users of brew:

brew install cask
brew cask install virtualbox
brew install docker
brew install docker-machine
docker-machine create -d virtualbox default
docker-machine start default && eval $(docker-machine env default)

When docker-machine finishes, it will prompt you to export Docker environment variables. With that done, you're ready to use docker.

docker run -ti jujusolutions/charmbox

About

Docker container for developing, testing, and reviewing Charms

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - simonklb/charmbox: Docker container for developing, testing, and reviewing Charms · GitHub
Skip to content

Repository files navigation

Charmbox

Charmbox is an extension of the jujubox container which adds tools for development, testing, and review of Juju Charms.

Usage

Juju Inside Docker

If you already have Docker installed (see below), and you don't want to install Juju on your host machine, the container can be run directly from Docker Hub:

sudo docker run --rm -ti jujusolutions/charmbox

Once inside the container, you can use quickstart to set up Juju with any provider except local, and use bundletester to test a charm:

$ubuntu@ab3d:~/$ juju quickstart
$ubuntu@ab3d:~/$ bundletester -t cs:trusty/ubuntu

Note that local provider is not currently available within the container, but it is possible to use an existing local provider with Charmbox (see below).

Using Charmbox with Existing Juju

If you already have Juju configured, you can use your existing Juju installation, including any environments, with a few extra arguments to the run command:

sudo docker run --rm -ti --net=host -v $HOME/.juju:/home/ubuntu/.juju jujusolutions/charmbox

Using Charmbox with Existing Juju and Local Provider

If you wish to use local provider, you will need to bootstrap from outside the container, but all subsequent operations will work normally within the container:

juju switch local
juju bootstrap
sudo docker run --rm --net=host -v $HOME/.juju:/home/ubuntu/.juju -ti charmbox

Once inside the container, you can use bundletester to test a charm:

$ubuntu@ab3d:~/$ bundletester -t lp:~user/charms/trusty/foo/branch
$ubuntu@ab3d:~/$ exit

Once you are done with the container, make sure you destroy the local provider that you bootstrapped:

juju destroy-environment local

Using Charmbox with Charms on your Host Machine

If you have charms already checked out on your host machine, you can mount the Juju repository subdirectory:

sudo docker run --rm -ti -v $JUJU_REPOSITORY/trusty:/home/ubuntu/trusty jujusolutions/charmbox

At this time, you cannot directly mount $JUJU_REPOSITORY inside the container because it would overwrite /home/ubuntu. Thus, it is recommended that you mount the trusty or precise subdirectories.

Mounting CWD into charmbox for testing

You can map the current working directory into charmbox for testing a single charm:

sudo docker run --rm -ti -v $(pwd):/home/ubuntu/trusty/{charm} jujusolutions/charmbox

Building Charmbox from Source

git clone https://github.com/juju-solutions/charmbox.git && cd charmbox
sudo docker build -t charmbox .
sudo docker run --rm -ti charmbox

Installing Docker

Linux

Install Docker using the package manager for your distro, or get.docker.com.

Docker >= 1.4.1 recommended.

OS X

Docker does not run natively in OS X, so we'll need to use VirtualBox and docker-machine. This is relatively easy for users of brew:

brew install cask
brew cask install virtualbox
brew install docker
brew install docker-machine
docker-machine create -d virtualbox default
docker-machine start default && eval $(docker-machine env default)

When docker-machine finishes, it will prompt you to export Docker environment variables. With that done, you're ready to use docker.

docker run -ti jujusolutions/charmbox

About

Docker container for developing, testing, and reviewing Charms

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - simonklb/charmbox: Docker container for developing, testing, and reviewing Charms · GitHub
Skip to content

Repository files navigation

Charmbox

Charmbox is an extension of the jujubox container which adds tools for development, testing, and review of Juju Charms.

Usage

Juju Inside Docker

If you already have Docker installed (see below), and you don't want to install Juju on your host machine, the container can be run directly from Docker Hub:

sudo docker run --rm -ti jujusolutions/charmbox

Once inside the container, you can use quickstart to set up Juju with any provider except local, and use bundletester to test a charm:

$ubuntu@ab3d:~/$ juju quickstart
$ubuntu@ab3d:~/$ bundletester -t cs:trusty/ubuntu

Note that local provider is not currently available within the container, but it is possible to use an existing local provider with Charmbox (see below).

Using Charmbox with Existing Juju

If you already have Juju configured, you can use your existing Juju installation, including any environments, with a few extra arguments to the run command:

sudo docker run --rm -ti --net=host -v $HOME/.juju:/home/ubuntu/.juju jujusolutions/charmbox

Using Charmbox with Existing Juju and Local Provider

If you wish to use local provider, you will need to bootstrap from outside the container, but all subsequent operations will work normally within the container:

juju switch local
juju bootstrap
sudo docker run --rm --net=host -v $HOME/.juju:/home/ubuntu/.juju -ti charmbox

Once inside the container, you can use bundletester to test a charm:

$ubuntu@ab3d:~/$ bundletester -t lp:~user/charms/trusty/foo/branch
$ubuntu@ab3d:~/$ exit

Once you are done with the container, make sure you destroy the local provider that you bootstrapped:

juju destroy-environment local

Using Charmbox with Charms on your Host Machine

If you have charms already checked out on your host machine, you can mount the Juju repository subdirectory:

sudo docker run --rm -ti -v $JUJU_REPOSITORY/trusty:/home/ubuntu/trusty jujusolutions/charmbox

At this time, you cannot directly mount $JUJU_REPOSITORY inside the container because it would overwrite /home/ubuntu. Thus, it is recommended that you mount the trusty or precise subdirectories.

Mounting CWD into charmbox for testing

You can map the current working directory into charmbox for testing a single charm:

sudo docker run --rm -ti -v $(pwd):/home/ubuntu/trusty/{charm} jujusolutions/charmbox

Building Charmbox from Source

git clone https://github.com/juju-solutions/charmbox.git && cd charmbox
sudo docker build -t charmbox .
sudo docker run --rm -ti charmbox

Installing Docker

Linux

Install Docker using the package manager for your distro, or get.docker.com.

Docker >= 1.4.1 recommended.

OS X

Docker does not run natively in OS X, so we'll need to use VirtualBox and docker-machine. This is relatively easy for users of brew:

brew install cask
brew cask install virtualbox
brew install docker
brew install docker-machine
docker-machine create -d virtualbox default
docker-machine start default && eval $(docker-machine env default)

When docker-machine finishes, it will prompt you to export Docker environment variables. With that done, you're ready to use docker.

docker run -ti jujusolutions/charmbox

About

Docker container for developing, testing, and reviewing Charms

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - simonklb/charmbox: Docker container for developing, testing, and reviewing Charms · GitHub
Skip to content

Repository files navigation

Charmbox

Charmbox is an extension of the jujubox container which adds tools for development, testing, and review of Juju Charms.

Usage

Juju Inside Docker

If you already have Docker installed (see below), and you don't want to install Juju on your host machine, the container can be run directly from Docker Hub:

sudo docker run --rm -ti jujusolutions/charmbox

Once inside the container, you can use quickstart to set up Juju with any provider except local, and use bundletester to test a charm:

$ubuntu@ab3d:~/$ juju quickstart
$ubuntu@ab3d:~/$ bundletester -t cs:trusty/ubuntu

Note that local provider is not currently available within the container, but it is possible to use an existing local provider with Charmbox (see below).

Using Charmbox with Existing Juju

If you already have Juju configured, you can use your existing Juju installation, including any environments, with a few extra arguments to the run command:

sudo docker run --rm -ti --net=host -v $HOME/.juju:/home/ubuntu/.juju jujusolutions/charmbox

Using Charmbox with Existing Juju and Local Provider

If you wish to use local provider, you will need to bootstrap from outside the container, but all subsequent operations will work normally within the container:

juju switch local
juju bootstrap
sudo docker run --rm --net=host -v $HOME/.juju:/home/ubuntu/.juju -ti charmbox

Once inside the container, you can use bundletester to test a charm:

$ubuntu@ab3d:~/$ bundletester -t lp:~user/charms/trusty/foo/branch
$ubuntu@ab3d:~/$ exit

Once you are done with the container, make sure you destroy the local provider that you bootstrapped:

juju destroy-environment local

Using Charmbox with Charms on your Host Machine

If you have charms already checked out on your host machine, you can mount the Juju repository subdirectory:

sudo docker run --rm -ti -v $JUJU_REPOSITORY/trusty:/home/ubuntu/trusty jujusolutions/charmbox

At this time, you cannot directly mount $JUJU_REPOSITORY inside the container because it would overwrite /home/ubuntu. Thus, it is recommended that you mount the trusty or precise subdirectories.

Mounting CWD into charmbox for testing

You can map the current working directory into charmbox for testing a single charm:

sudo docker run --rm -ti -v $(pwd):/home/ubuntu/trusty/{charm} jujusolutions/charmbox

Building Charmbox from Source

git clone https://github.com/juju-solutions/charmbox.git && cd charmbox
sudo docker build -t charmbox .
sudo docker run --rm -ti charmbox

Installing Docker

Linux

Install Docker using the package manager for your distro, or get.docker.com.

Docker >= 1.4.1 recommended.

OS X

Docker does not run natively in OS X, so we'll need to use VirtualBox and docker-machine. This is relatively easy for users of brew:

brew install cask
brew cask install virtualbox
brew install docker
brew install docker-machine
docker-machine create -d virtualbox default
docker-machine start default && eval $(docker-machine env default)

When docker-machine finishes, it will prompt you to export Docker environment variables. With that done, you're ready to use docker.

docker run -ti jujusolutions/charmbox

About

Docker container for developing, testing, and reviewing Charms

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - simonklb/charmbox: Docker container for developing, testing, and reviewing Charms · GitHub
Skip to content

Repository files navigation

Charmbox

Charmbox is an extension of the jujubox container which adds tools for development, testing, and review of Juju Charms.

Usage

Juju Inside Docker

If you already have Docker installed (see below), and you don't want to install Juju on your host machine, the container can be run directly from Docker Hub:

sudo docker run --rm -ti jujusolutions/charmbox

Once inside the container, you can use quickstart to set up Juju with any provider except local, and use bundletester to test a charm:

$ubuntu@ab3d:~/$ juju quickstart
$ubuntu@ab3d:~/$ bundletester -t cs:trusty/ubuntu

Note that local provider is not currently available within the container, but it is possible to use an existing local provider with Charmbox (see below).

Using Charmbox with Existing Juju

If you already have Juju configured, you can use your existing Juju installation, including any environments, with a few extra arguments to the run command:

sudo docker run --rm -ti --net=host -v $HOME/.juju:/home/ubuntu/.juju jujusolutions/charmbox

Using Charmbox with Existing Juju and Local Provider

If you wish to use local provider, you will need to bootstrap from outside the container, but all subsequent operations will work normally within the container:

juju switch local
juju bootstrap
sudo docker run --rm --net=host -v $HOME/.juju:/home/ubuntu/.juju -ti charmbox

Once inside the container, you can use bundletester to test a charm:

$ubuntu@ab3d:~/$ bundletester -t lp:~user/charms/trusty/foo/branch
$ubuntu@ab3d:~/$ exit

Once you are done with the container, make sure you destroy the local provider that you bootstrapped:

juju destroy-environment local

Using Charmbox with Charms on your Host Machine

If you have charms already checked out on your host machine, you can mount the Juju repository subdirectory:

sudo docker run --rm -ti -v $JUJU_REPOSITORY/trusty:/home/ubuntu/trusty jujusolutions/charmbox

At this time, you cannot directly mount $JUJU_REPOSITORY inside the container because it would overwrite /home/ubuntu. Thus, it is recommended that you mount the trusty or precise subdirectories.

Mounting CWD into charmbox for testing

You can map the current working directory into charmbox for testing a single charm:

sudo docker run --rm -ti -v $(pwd):/home/ubuntu/trusty/{charm} jujusolutions/charmbox

Building Charmbox from Source

git clone https://github.com/juju-solutions/charmbox.git && cd charmbox
sudo docker build -t charmbox .
sudo docker run --rm -ti charmbox

Installing Docker

Linux

Install Docker using the package manager for your distro, or get.docker.com.

Docker >= 1.4.1 recommended.

OS X

Docker does not run natively in OS X, so we'll need to use VirtualBox and docker-machine. This is relatively easy for users of brew:

brew install cask
brew cask install virtualbox
brew install docker
brew install docker-machine
docker-machine create -d virtualbox default
docker-machine start default && eval $(docker-machine env default)

When docker-machine finishes, it will prompt you to export Docker environment variables. With that done, you're ready to use docker.

docker run -ti jujusolutions/charmbox

About

Docker container for developing, testing, and reviewing Charms

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - simonklb/charmbox: Docker container for developing, testing, and reviewing Charms · GitHub
Skip to content

Repository files navigation

Charmbox

Charmbox is an extension of the jujubox container which adds tools for development, testing, and review of Juju Charms.

Usage

Juju Inside Docker

If you already have Docker installed (see below), and you don't want to install Juju on your host machine, the container can be run directly from Docker Hub:

sudo docker run --rm -ti jujusolutions/charmbox

Once inside the container, you can use quickstart to set up Juju with any provider except local, and use bundletester to test a charm:

$ubuntu@ab3d:~/$ juju quickstart
$ubuntu@ab3d:~/$ bundletester -t cs:trusty/ubuntu

Note that local provider is not currently available within the container, but it is possible to use an existing local provider with Charmbox (see below).

Using Charmbox with Existing Juju

If you already have Juju configured, you can use your existing Juju installation, including any environments, with a few extra arguments to the run command:

sudo docker run --rm -ti --net=host -v $HOME/.juju:/home/ubuntu/.juju jujusolutions/charmbox

Using Charmbox with Existing Juju and Local Provider

If you wish to use local provider, you will need to bootstrap from outside the container, but all subsequent operations will work normally within the container:

juju switch local
juju bootstrap
sudo docker run --rm --net=host -v $HOME/.juju:/home/ubuntu/.juju -ti charmbox

Once inside the container, you can use bundletester to test a charm:

$ubuntu@ab3d:~/$ bundletester -t lp:~user/charms/trusty/foo/branch
$ubuntu@ab3d:~/$ exit

Once you are done with the container, make sure you destroy the local provider that you bootstrapped:

juju destroy-environment local

Using Charmbox with Charms on your Host Machine

If you have charms already checked out on your host machine, you can mount the Juju repository subdirectory:

sudo docker run --rm -ti -v $JUJU_REPOSITORY/trusty:/home/ubuntu/trusty jujusolutions/charmbox

At this time, you cannot directly mount $JUJU_REPOSITORY inside the container because it would overwrite /home/ubuntu. Thus, it is recommended that you mount the trusty or precise subdirectories.

Mounting CWD into charmbox for testing

You can map the current working directory into charmbox for testing a single charm:

sudo docker run --rm -ti -v $(pwd):/home/ubuntu/trusty/{charm} jujusolutions/charmbox

Building Charmbox from Source

git clone https://github.com/juju-solutions/charmbox.git && cd charmbox
sudo docker build -t charmbox .
sudo docker run --rm -ti charmbox

Installing Docker

Linux

Install Docker using the package manager for your distro, or get.docker.com.

Docker >= 1.4.1 recommended.

OS X

Docker does not run natively in OS X, so we'll need to use VirtualBox and docker-machine. This is relatively easy for users of brew:

brew install cask
brew cask install virtualbox
brew install docker
brew install docker-machine
docker-machine create -d virtualbox default
docker-machine start default && eval $(docker-machine env default)

When docker-machine finishes, it will prompt you to export Docker environment variables. With that done, you're ready to use docker.

docker run -ti jujusolutions/charmbox

About

Docker container for developing, testing, and reviewing Charms

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - simonklb/charmbox: Docker container for developing, testing, and reviewing Charms · GitHub
Skip to content

Repository files navigation

Charmbox

Charmbox is an extension of the jujubox container which adds tools for development, testing, and review of Juju Charms.

Usage

Juju Inside Docker

If you already have Docker installed (see below), and you don't want to install Juju on your host machine, the container can be run directly from Docker Hub:

sudo docker run --rm -ti jujusolutions/charmbox

Once inside the container, you can use quickstart to set up Juju with any provider except local, and use bundletester to test a charm:

$ubuntu@ab3d:~/$ juju quickstart
$ubuntu@ab3d:~/$ bundletester -t cs:trusty/ubuntu

Note that local provider is not currently available within the container, but it is possible to use an existing local provider with Charmbox (see below).

Using Charmbox with Existing Juju

If you already have Juju configured, you can use your existing Juju installation, including any environments, with a few extra arguments to the run command:

sudo docker run --rm -ti --net=host -v $HOME/.juju:/home/ubuntu/.juju jujusolutions/charmbox

Using Charmbox with Existing Juju and Local Provider

If you wish to use local provider, you will need to bootstrap from outside the container, but all subsequent operations will work normally within the container:

juju switch local
juju bootstrap
sudo docker run --rm --net=host -v $HOME/.juju:/home/ubuntu/.juju -ti charmbox

Once inside the container, you can use bundletester to test a charm:

$ubuntu@ab3d:~/$ bundletester -t lp:~user/charms/trusty/foo/branch
$ubuntu@ab3d:~/$ exit

Once you are done with the container, make sure you destroy the local provider that you bootstrapped:

juju destroy-environment local

Using Charmbox with Charms on your Host Machine

If you have charms already checked out on your host machine, you can mount the Juju repository subdirectory:

sudo docker run --rm -ti -v $JUJU_REPOSITORY/trusty:/home/ubuntu/trusty jujusolutions/charmbox

At this time, you cannot directly mount $JUJU_REPOSITORY inside the container because it would overwrite /home/ubuntu. Thus, it is recommended that you mount the trusty or precise subdirectories.

Mounting CWD into charmbox for testing

You can map the current working directory into charmbox for testing a single charm:

sudo docker run --rm -ti -v $(pwd):/home/ubuntu/trusty/{charm} jujusolutions/charmbox

Building Charmbox from Source

git clone https://github.com/juju-solutions/charmbox.git && cd charmbox
sudo docker build -t charmbox .
sudo docker run --rm -ti charmbox

Installing Docker

Linux

Install Docker using the package manager for your distro, or get.docker.com.

Docker >= 1.4.1 recommended.

OS X

Docker does not run natively in OS X, so we'll need to use VirtualBox and docker-machine. This is relatively easy for users of brew:

brew install cask
brew cask install virtualbox
brew install docker
brew install docker-machine
docker-machine create -d virtualbox default
docker-machine start default && eval $(docker-machine env default)

When docker-machine finishes, it will prompt you to export Docker environment variables. With that done, you're ready to use docker.

docker run -ti jujusolutions/charmbox

About

Docker container for developing, testing, and reviewing Charms

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages