zeus
3 years ago
37 changed files with 637 additions and 38 deletions
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 64 KiB |
@ -0,0 +1,464 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
<head> |
||||
|
<meta charset="utf-8"> |
||||
|
<meta name="viewport" content="width=device-width,initial-scale=1"> |
||||
|
<title>Docker :: Swarmlab docs</title> |
||||
|
<link rel="canonical" href="http://docs.swarmlab.io/SwarmLab-HowTos/swarmlab/docs/swarmlab/docs/install/install-docker.html"> |
||||
|
<link rel="prev" href="install-venus.html"> |
||||
|
<link rel="next" href="../quickstart/overview.html"> |
||||
|
<meta name="generator" content="Antora 2.3.4"> |
||||
|
<link rel="stylesheet" href="../../../_/css/site.css"> |
||||
|
<link rel="stylesheet" href="../../../_/css/search.css"> |
||||
|
<script>var uiRootPath = '../../../_'</script> |
||||
|
</head> |
||||
|
<body class="article"> |
||||
|
<header class="header"> |
||||
|
<nav class="navbar"> |
||||
|
<div class="navbar-brand"> |
||||
|
<a class="navbar-item" href="http://docs.swarmlab.io/SwarmLab-HowTos/swarmlab/docs">Swarmlab docs</a> |
||||
|
<button class="navbar-burger" data-target="topbar-nav"> |
||||
|
<span></span> |
||||
|
<span></span> |
||||
|
<span></span> |
||||
|
</button> |
||||
|
</div> |
||||
|
<div id="topbar-nav" class="navbar-menu"> |
||||
|
<div class="navbar-end"> |
||||
|
<a class="navbar-item" href="#">Home</a> |
||||
|
<div class="navbar-item has-dropdown is-hoverable"> |
||||
|
<a class="navbar-link" href="#">Products</a> |
||||
|
<div class="navbar-dropdown"> |
||||
|
<a class="navbar-item" target ="hybridgit" href="https://git.swarmlab.io:3000/zeus/swarmlab-hybrid">Hybrid</a> |
||||
|
<a class="navbar-item" target ="venusgit" href="https://git.swarmlab.io:3000/swarmlab/venus-client">Venus</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="navbar-item has-dropdown is-hoverable"> |
||||
|
<a class="navbar-link" href="#">Services</a> |
||||
|
<div class="navbar-dropdown"> |
||||
|
<a class="navbar-item" target ="hybrid" href="https://api-client.swarmlab.io:8088/">Hybrid</a> |
||||
|
<a class="navbar-item" target ="venus" href="https://api-client.swarmlab.io:8088/">Venus</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="navbar-item"> |
||||
|
<input id="search-input" type="text" placeholder="Search docs"> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</nav> |
||||
|
</header> |
||||
|
<div class="body"> |
||||
|
<div class="nav-container" data-component="swarmlab" data-version="docs"> |
||||
|
<aside class="nav"> |
||||
|
<div class="panels"> |
||||
|
<div class="nav-panel-menu is-active" data-panel="menu"> |
||||
|
<nav class="nav-menu"> |
||||
|
<h3 class="title"><a href="../index.html">swarmlab</a></h3> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="0"> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="1"> |
||||
|
<a class="nav-link" href="../index.html">Welcome</a> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="0"> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="1"> |
||||
|
<a class="nav-link" href="../register/overview.html">Register</a> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="0"> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="1"> |
||||
|
<button class="nav-item-toggle"></button> |
||||
|
<a class="nav-link" href="overview.html">Install</a> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="2"> |
||||
|
<a class="nav-link" href="install-hybrid.html">Hybrid</a> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="2"> |
||||
|
<a class="nav-link" href="install-venus.html">Venus</a> |
||||
|
</li> |
||||
|
<li class="nav-item is-current-page" data-depth="2"> |
||||
|
<a class="nav-link" href="install-docker.html">Docker</a> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="0"> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="1"> |
||||
|
<a class="nav-link" href="../quickstart/overview.html">Quickstart</a> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="0"> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="1"> |
||||
|
<button class="nav-item-toggle"></button> |
||||
|
<a class="nav-link" href="../hybrid/overview.html">Hybrid</a> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="2"> |
||||
|
<button class="nav-item-toggle"></button> |
||||
|
<a class="nav-link" href="../hybrid/overview-hybrid.html">Private/Local</a> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="3"> |
||||
|
<a class="nav-link" href="../hybrid/start-labroom.html">Labroom</a> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="3"> |
||||
|
<a class="nav-link" href="../hybrid/start-storage.html">Storage</a> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="3"> |
||||
|
<a class="nav-link" href="../hybrid/start-microservices.html">Microservices</a> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="2"> |
||||
|
<button class="nav-item-toggle"></button> |
||||
|
<a class="nav-link" href="../hybrid/manage-instanches.html">Instances</a> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="3"> |
||||
|
<a class="nav-link" href="../hybrid/manage-instanchesi-connect.html">connect</a> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="0"> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="1"> |
||||
|
<button class="nav-item-toggle"></button> |
||||
|
<a class="nav-link" href="../venus/overview.html">Venus</a> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="2"> |
||||
|
<button class="nav-item-toggle"></button> |
||||
|
<a class="nav-link" href="../venus/overview-network.html">Network</a> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="3"> |
||||
|
<a class="nav-link" href="../venus/deploy.html">Deploy</a> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="3"> |
||||
|
<a class="nav-link" href="../venus/join.html">Join</a> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="3"> |
||||
|
<a class="nav-link" href="../venus/user.html">User</a> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="2"> |
||||
|
<button class="nav-item-toggle"></button> |
||||
|
<a class="nav-link" href="../venus/overview-share.html">Share</a> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="3"> |
||||
|
<a class="nav-link" href="../venus/share-app.html">App</a> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="3"> |
||||
|
<button class="nav-item-toggle"></button> |
||||
|
<a class="nav-link" href="../venus/share-volume.html">Volume</a> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="4"> |
||||
|
<a class="nav-link" href="../venus/share-volume-share.html">share</a> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="4"> |
||||
|
<a class="nav-link" href="../venus/share-volume-connect.html">Connect</a> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="0"> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="1"> |
||||
|
<button class="nav-item-toggle"></button> |
||||
|
<a class="nav-link" href="../myservices/overview.html">MyServices</a> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="2"> |
||||
|
<button class="nav-item-toggle"></button> |
||||
|
<a class="nav-link" href="../myservices/overview-labroom.html">Labrooms</a> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="3"> |
||||
|
<a class="nav-link" href="../myservices/linux.html">Linux</a> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="3"> |
||||
|
<a class="nav-link" href="../myservices/mpi.html">MPI</a> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="3"> |
||||
|
<a class="nav-link" href="../myservices/nodevuejs.html">Node+Vue</a> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="2"> |
||||
|
<button class="nav-item-toggle"></button> |
||||
|
<a class="nav-link" href="../myservices/overview-storage.html">Storage</a> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="3"> |
||||
|
<a class="nav-link" href="../myservices/storage-mongo-replica.html">Mongo replica</a> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="2"> |
||||
|
<button class="nav-item-toggle"></button> |
||||
|
<a class="nav-link" href="../myservices/overview-services.html">Microservices</a> |
||||
|
<ul class="nav-list"> |
||||
|
<li class="nav-item" data-depth="3"> |
||||
|
<a class="nav-link" href="../myservices/jupyter.html">Jupyter</a> |
||||
|
</li> |
||||
|
<li class="nav-item" data-depth="3"> |
||||
|
<a class="nav-link" href="../myservices/node.html">Node</a> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</nav> |
||||
|
</div> |
||||
|
<div class="nav-panel-explore" data-panel="explore"> |
||||
|
<div class="context"> |
||||
|
<span class="title">swarmlab</span> |
||||
|
<span class="version">docs</span> |
||||
|
</div> |
||||
|
<ul class="components"> |
||||
|
<li class="component is-current"> |
||||
|
<a class="title" href="../index.html">swarmlab</a> |
||||
|
<ul class="versions"> |
||||
|
<li class="version is-current is-latest"> |
||||
|
<a href="../index.html">docs</a> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
</div> |
||||
|
</aside> |
||||
|
</div> |
||||
|
<main class="article"> |
||||
|
<div class="toolbar" role="navigation"> |
||||
|
<button class="nav-toggle"></button> |
||||
|
<a href="../index.html" class="home-link"></a> |
||||
|
<nav class="breadcrumbs" aria-label="breadcrumbs"> |
||||
|
<ul> |
||||
|
<li><a href="../index.html">swarmlab</a></li> |
||||
|
<li><a href="overview.html">Install</a></li> |
||||
|
<li><a href="install-docker.html">Docker</a></li> |
||||
|
</ul> |
||||
|
</nav> |
||||
|
</div> |
||||
|
<div class="content"> |
||||
|
<aside class="toc sidebar" data-title="Contents" data-levels="2"> |
||||
|
<div class="toc-menu"></div> |
||||
|
</aside> |
||||
|
<article class="doc"> |
||||
|
<h1 class="page">Docker</h1> |
||||
|
<div class="sect1"> |
||||
|
<h2 id="why-docker"><a class="anchor" href="#why-docker"></a>Why Docker</h2> |
||||
|
<div class="sectionbody"> |
||||
|
<div class="paragraph"> |
||||
|
<p>We will use docker because Docker <strong>makes development efficient</strong>.</p> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>The usage of docker gives a very big advantage and that’s the write once ship many.</p> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>The development team will write an application/service and use docker to make it a container that will surely have all the requirements for the user to run it on any machine that has docker installed even inside another docker container, thus giving the ability of nested virtualization</p> |
||||
|
</div> |
||||
|
<div class="admonitionblock tip"> |
||||
|
<table> |
||||
|
<tr> |
||||
|
<td class="icon"> |
||||
|
<i class="fa icon-tip" title="Tip"></i> |
||||
|
</td> |
||||
|
<td class="content"> |
||||
|
<div class="paragraph"> |
||||
|
<p>Enabling the creation of a |
||||
|
<a href="https://www.redhat.com/en/topics/devops/what-is-ci-cd" target="_blank" rel="noopener">CI/CD pipeline</a></p> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p><span class="image"><img src="_images/cicd.jpg" alt="cicd"></span></p> |
||||
|
</div> |
||||
|
</td> |
||||
|
</tr> |
||||
|
</table> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sect1"> |
||||
|
<h2 id="linuxnix-installation-of-docker"><a class="anchor" href="#linuxnix-installation-of-docker"></a>Linux/*Nix Installation of docker</h2> |
||||
|
<div class="sectionbody"> |
||||
|
<div class="listingblock"> |
||||
|
<div class="content"> |
||||
|
<pre class="highlightjs highlight"><code class="language-sh hljs" data-lang="sh">sudo -l # To ensure that we can run apt as root |
||||
|
sudo apt-get update # To update our repos/references on apt |
||||
|
sudo apt install -y lsb-release |
||||
|
sudo apt install -y curl |
||||
|
curl -V # Ensure that curl is installed and in a modern version |
||||
|
sudo apt install software-properties-common |
||||
|
|
||||
|
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # To add the gpg key on our keyring |
||||
|
|
||||
|
echo \ |
||||
|
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ |
||||
|
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null |
||||
|
# Add the official repo on apt or any other package manager |
||||
|
|
||||
|
sudo apt install -y docker-ce # Actually installing docker |
||||
|
sudo usermod -aG docker $USER # Add current user to the docker group |
||||
|
su - ${USER} # Reload our shell |
||||
|
|
||||
|
docker --version # See the docker version |
||||
|
docker run hello-world # Test if docker really works</code></pre> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sect1"> |
||||
|
<h2 id="windows-10-with-wsl-version2-enabled"><a class="anchor" href="#windows-10-with-wsl-version2-enabled"></a>Windows 10 with wsl version2 enabled</h2> |
||||
|
<div class="sectionbody"> |
||||
|
<div class="admonitionblock tip"> |
||||
|
<table> |
||||
|
<tr> |
||||
|
<td class="icon"> |
||||
|
<i class="fa icon-tip" title="Tip"></i> |
||||
|
</td> |
||||
|
<td class="content"> |
||||
|
You must have wsl version2 installed and enabled (<a href="https://docs.microsoft.com/en-us/windows/wsl/install-win10" target="_blank" rel="noopener">Install wsl</a>) |
||||
|
</td> |
||||
|
</tr> |
||||
|
</table> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Step 1: Download the Docker Desktop for Windows from <a href="https://docs.docker.com/desktop/windows/install/" class="bare">https://docs.docker.com/desktop/windows/install/</a></p> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Step 2: Execute the installer via powershell or by just cklicking on the installer.exe file</p> |
||||
|
</div> |
||||
|
<div class="listingblock"> |
||||
|
<div class="content"> |
||||
|
<pre class="highlightjs highlight"><code class="language-sh hljs" data-lang="sh">cd .\Downloads\ |
||||
|
.\"Docker Desktop Installer.exe"</code></pre> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Step 3: Accept anything the installer ask for</p> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Step 4: Log out and Log in, after you are prompted to do so</p> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Step 5: Open the docker engine app</p> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Step 6: Go to docker app settings → Resources → WSL Integration</p> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Step 7: Click on the refresh button</p> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Step 8: Enable docker for the wsl installation that you want.</p> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Step 9: Click on apply and restart</p> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>Step 10: Open the wsl shell and type:</p> |
||||
|
</div> |
||||
|
<div class="listingblock"> |
||||
|
<div class="content"> |
||||
|
<pre class="highlightjs highlight"><code class="language-sh hljs" data-lang="sh">docker --version |
||||
|
docker run hello-world</code></pre> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sect1"> |
||||
|
<h2 id="fix-x509-certificate-signed-by-unknown-authority-issue"><a class="anchor" href="#fix-x509-certificate-signed-by-unknown-authority-issue"></a>Fix "x509: certificate signed by unknown authority" issue</h2> |
||||
|
<div class="sectionbody"> |
||||
|
<div class="paragraph"> |
||||
|
<p>On Error:</p> |
||||
|
</div> |
||||
|
<div class="listingblock"> |
||||
|
<div class="content"> |
||||
|
<pre class="highlightjs highlight"><code class="language-sh hljs" data-lang="sh">Get https ://registry.vlabs.uniwa.gr:5080/v2/: x509: certificate |
||||
|
|
||||
|
Pulling ... |
||||
|
ERROR: Get https://registry.vlabs.uniwa.gr:5080/v2/: x509: certificate signed by unknown authority</code></pre> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>run</p> |
||||
|
</div> |
||||
|
<div class="listingblock"> |
||||
|
<div class="content"> |
||||
|
<pre class="highlightjs highlight"><code class="language-sh hljs" data-lang="sh">sudo su |
||||
|
touch set-ca.sh</code></pre> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>copy-paste lines</p> |
||||
|
</div> |
||||
|
<div class="listingblock"> |
||||
|
<div class="content"> |
||||
|
<pre class="highlightjs highlight"><code class="language-sh hljs" data-lang="sh">registry_address=hub.swarmlab.io |
||||
|
registry_port=5443 |
||||
|
mkdir -p /etc/docker/certs.d/$registry_address:$registry_port |
||||
|
openssl s_client -showcerts -connect $registry_address:$registry_port < /dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /etc/docker/certs.d/$registry_address:$registry_port/ca.crt |
||||
|
|
||||
|
registry_port=5480 |
||||
|
mkdir -p /etc/docker/certs.d/$registry_address:$registry_port |
||||
|
openssl s_client -showcerts -connect $registry_address:$registry_port < /dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /etc/docker/certs.d/$registry_address:$registry_port/ca.crt</code></pre> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="paragraph"> |
||||
|
<p>exec file</p> |
||||
|
</div> |
||||
|
<div class="listingblock"> |
||||
|
<div class="content"> |
||||
|
<pre class="highlightjs highlight"><code class="language-sh hljs" data-lang="sh">sudo bash ./set-ca.sh</code></pre> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="sect1"> |
||||
|
<h2 id="docker-compose"><a class="anchor" href="#docker-compose"></a>docker-compose</h2> |
||||
|
<div class="sectionbody"> |
||||
|
<div class="paragraph"> |
||||
|
<p>You also need to install Docker Compose</p> |
||||
|
</div> |
||||
|
<div class="listingblock"> |
||||
|
<div class="content"> |
||||
|
<pre class="highlightjs highlight"><code class="language-sh hljs" data-lang="sh">sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
||||
|
sudo chmod +x /usr/local/bin/docker-compose |
||||
|
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose</code></pre> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<nav class="pagination"> |
||||
|
<span class="prev"><a href="install-venus.html">Venus</a></span> |
||||
|
<span class="next"><a href="../quickstart/overview.html">Quickstart</a></span> |
||||
|
</nav> |
||||
|
</article> |
||||
|
</div> |
||||
|
</main> |
||||
|
</div> |
||||
|
<footer class="footer"> |
||||
|
<p>This page was built using the Antora <a href="https://gitlab.com/antora/antora-ui-default" target="antora">default UI</a> </p> |
||||
|
</footer> |
||||
|
<script src="../../../_/js/site.js"></script> |
||||
|
<script src="../../../_/js/vendor/lunr.js"></script> |
||||
|
<script src="../../../_/js/vendor/search.js" id="search-script" data-base-path="../../.." data-page-path="/swarmlab/docs/install/install-docker.html"></script> |
||||
|
<script async src="../../../_/../search-index.js"></script> |
||||
|
<script async src="../../../_/js/vendor/highlight.js"></script> |
||||
|
</body> |
||||
|
</html> |
Loading…
Reference in new issue