This repository has been archived on 2020-03-24. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Jimmy Zelinskie 0d043f30d6 changelog: cut v1.16.6 2016-08-17 14:48:55 -04:00
auth Use the instance service key for registry JWT signing 2016-06-07 11:58:10 -04:00
avatars Fail safe when gravatar is done 2016-04-11 13:46:32 -04:00
buildman Fix TTL on heartbeat in etcd 2016-08-03 11:15:03 -04:00
buildstatus status badges updated to use shields.io standard 2015-03-23 20:24:08 -04:00
buildtrigger Use new error format for auth errors (factor exceptions into module) 2016-04-11 16:22:26 -04:00
conf Move aggregator into its own repo and add it to the image 2016-07-05 15:39:51 -04:00
data Fix off-by-one error in repo tags pagination 2016-08-02 14:17:33 -04:00
digest Merge branch 'newchanges' into python-registry-v2 2015-11-06 18:24:32 -05:00
emails Better UX when recovering organization emails 2015-12-28 15:25:31 -05:00
endpoints Merge pull request #1672 from coreos-inc/off-by-one 2016-08-03 15:00:23 -04:00
events Fix all target="_blank" anchors to be safer 2016-04-28 14:38:22 -04:00
features Strip whitespace from ALL the things. 2014-11-24 16:07:38 -05:00
formats Make ACI generation consistent across calls 2016-05-26 17:09:19 -04:00
grunt Disable source map generation 2015-11-30 11:42:45 -05:00
health Add missing arg to validate call and add logging 2016-08-03 11:13:27 -04:00
screenshots Delete the image diff feature 2015-12-23 13:08:01 -05:00
static Merge pull request #1657 from coreos-inc/redis-reconnect 2016-07-27 16:11:58 -07:00
storage Merge pull request #1675 from coreos-inc/fix-storage-validation 2016-08-03 14:05:37 -04:00
templates Add Marketo munchkin tracking via angulartics 2016-06-20 16:22:30 -04:00
test Merge pull request #1672 from coreos-inc/off-by-one 2016-08-03 15:00:23 -04:00
tools Invoice tool for generating accounting compliant reports. 2016-07-08 13:00:01 -04:00
util Change validate method to work for all storages 2016-08-02 15:01:37 -04:00
workers Accidentally forgot a line in the gc worker. 2016-08-02 10:44:53 -04:00
.dockerignore Update the roadmap for current sprint and strip from QE 2016-03-04 11:29:51 -05:00
.gitignore Remove escaped_fragment snapshot rendering. 2016-06-14 12:53:10 -04:00
Bobfile Update the bobfile to only use the one dockerfile. 2015-01-29 11:04:05 -05:00
CHANGELOG.md changelog: cut v1.16.6 2016-08-17 14:48:55 -04:00
Dockerfile Disable ACI tests when build under Docker 2016-07-13 14:23:30 -04:00
MAINTAINERS MAINTAINERS: initial commit 2015-08-04 21:39:33 -07:00
README.md readme: mention test database location 2016-06-17 18:23:11 -04:00
ROADMAP.md Update the roadmap for current sprint and strip from QE 2016-03-04 11:29:51 -05:00
alembic.ini Print the time when logging from migrations 2015-11-09 22:29:17 -05:00
app.py Merge pull request #1712 from coreos-inc/force-session-cookie 2016-08-17 14:44:55 -04:00
application.py Split secscan endpoints into a new process 2016-05-02 11:38:00 -04:00
boot.py Use the instance service key for registry JWT signing 2016-06-07 11:58:10 -04:00
build.sh Update build.sh to work with GIT_HEAD 2015-11-04 16:55:34 -05:00
config.py Move aggregator into its own repo and add it to the image 2016-07-05 15:39:51 -04:00
dev.df Refactor prometheus integration 2016-07-01 14:16:50 -04:00
external_libraries.py Change repo stats to use the RAC table and a nice UI 2016-06-22 15:06:53 -04:00
initdb.py Add a sitemap.txt for popular public repos 2016-06-17 14:34:20 -04:00
local-docker.sh local-docker.sh now accepts env vars 2016-07-08 15:50:51 -04:00
local-run.sh remove shebang from local scripts 2014-11-20 15:25:13 -05:00
local-test.sh use kwargs for parse_repository_name 2016-03-09 16:20:28 -05:00
pylintrc pylint: ignore constant names and too many locals 2015-11-10 15:22:30 -05:00
registry.py Merge remote-tracking branch 'upstream/v2-phase4' into python-registry-v2 2015-10-22 16:59:28 -04:00
release.py superuser: add storage replication config 2015-11-09 17:34:22 -05:00
requirements-dev.txt reqs: add ipdb to dev 2016-05-27 14:44:30 -04:00
requirements-nover.txt requirements: migrate back to upstream PyGithub (#1592) 2016-07-01 11:49:41 -04:00
requirements.txt requirements: migrate back to upstream PyGithub (#1592) 2016-07-01 11:49:41 -04:00
secscan.py Split secscan endpoints into a new process 2016-05-02 11:38:00 -04:00
verbs.py Add DEBUGLOG flag for enabling full debug logs in all gunicorn components 2015-10-13 10:45:49 -04:00
web.py Split secscan endpoints into a new process 2016-05-02 11:38:00 -04:00

README.md

quay

Docker Repository on Quay

Note: The master branch may be in an unstable or even broken state during development. Please use releases instead of the master branch in order to get stable binaries.

Quay Logo

Quay is project to build, store, and distribute container images.

High-level features include:

Getting Started

macOS

macOS developers will need:

# Download the code
git clone git@github.com:coreos-inc/quay.git && cd quay

# Install the system dependencies
brew install libevent libmagic postgresql gpgme

# Some installs don't have /usr/include, required for finding SASL header files
if [ ! -e /usr/include ]; then sudo ln -s `xcrun --show-sdk-path`/usr/include /usr/include; fi

# Install the Python dependencies
pyenv virtualenv 2.7.11 quay
pyenv activate quay
pip install -r requirements.txt
pip install -r requirements-dev.txt

# Setup a local config
git clone git@github.com:coreos-inc/quay-config.git ../quay-config
ln -s ../../quay-config/local conf/stack

clang errors

Some packages may fail to build with clang (which now defaults to C11).

They can be installed with C99 with:

CFLAGS='-std=c99' pip install --no-cache --no-binary :all: gevent
CFLAGS='-std=c99' pip install --no-cache --no-binary :all: cffi
CFLAGS='-std=c99' pip install --no-cache --no-binary :all: cryptography

Linux

TODO

Running and Testing

Test Data

A SQLite database full of test data is committed to this git repository at test/data/test.db. This database is generated by executing python initdb.py. The username and password of the admin test account is devtable and password, respectively.

Local Scripts

  • local-run runs the web server for testing
  • local-test runs the unit test suite

Development inside Docker

To build and run a development container, pass one argument to local-docker.sh:

  • buildman: run the buildmanager
  • dev: run web server on port 5000
  • initdb: clear and initialize the test database
  • notifications: run the notification worker
  • test: run the unit test suite

Adding a Python Dependency

# Create a new virtualenv and activate it
pyenv virtualenv 2.7.11 quay-deps
pyenv activate quay-deps

# Install unversioned dependencies with your changes
pip install -r requirements-nover.txt

# Run the unit test suite
./local-test.sh

# Freeze the versions of all of the dependencies
pip freeze > requirements.txt

Running the Build System

TODO

# Run an instance of redis
docker run -d -p 6379:6379 quay.io/quay/redis

Documentation

Architecture at a Glance

TODO

Terminology

TODO