Setting up Apache to work with multiple Docker repositories

Setting up Apache to work with multiple Docker repositories

AuthorFullName__c
JFrog Support
articleNumber
000001548
ft:sourceType
Salesforce
FirstPublishedDate
2016-10-06T13:38:26Z
lastModifiedDate
2016-10-06
VersionNumber
3

 

To have multiple docker repositories in Artifactory, you’ll need to setup different SSL ports (e.g have several VirtualHosts) on your Apache configuration. For example, your default-ssl.conf file may look similar to this -

 

<VirtualHost *:443>
ServerName dockerone.com

SSLEngine on
SSLCertificateFile /etc/ssl/certs/docker-registry
SSLCertificateKeyFile /etc/ssl/private/docker-registry.key

ProxyRequests off
ProxyPreserveHost on

ProxyPass / http://localhost:9999/artifactory/api/docker/docker-local/
ProxyPassReverse / http://localhost:9999/artifactory/api/docker/docker-local/
</VirtualHost>

<VirtualHost *:442>
ServerName dockertwo.com

SSLEngine on
SSLCertificateFile /etc/ssl/certs/docker-registry
SSLCertificateKeyFile /etc/ssl/private/docker-registry.key

ProxyRequests off
ProxyPreserveHost on

ProxyPass / http://localhost:9999/artifactory/api/docker/docker-local-2/
ProxyPassReverse / http://localhost:9999/artifactory/api/docker/docker-local-2/
</VirtualHost>


 

To use a non-standard SSL port on a VirtualHost (like 442 in the above example), it is also required to add this to your /etc/apache2/ports.conf file with -

 

NameVirtualHost *:442
Listen 442

 

Finally, you need to setup your .dockercfg to manage your credentials per each of the registries, e.g -

{

"https://localhost:442" : {

"auth" : "YWRtaW46QVAzSEZ4UnFhemhoUzlVV2trTFZCMnNHTmlE",

"email" : ""

 

},

"https://localhost:443" : {

"auth" : "YWRtaW46QVAzSEZ4UnFhemhoUzlVV2trTFZCMnNHTmlE",

"email" : ""

}

}