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.
quay/README.md
2016-04-06 13:52:42 -04:00

95 lines
2.5 KiB
Markdown

# Quay - container image registry
`master` branch build status: ![Docker Repository on Quay](https://quay.io/repository/quay/quay/status?token=7bffbc13-8bb0-4fb4-8a70-684a0cf485d3 "Docker Repository on Quay")
Quay is a container image registry with managements APIs, a Docker registry API, a container build system.
The application is implemented as a set of API endpoints written in python and an Angular.js frontend.
## Setup Development Environment
If you are doing local development on your workstation against the code base follow these instructions.
### Docker
Quay and its parts can run inside of docker containers.
This method requires no installation of any python packages on your host machine.
The `local-docker.sh` script is provided to prepare and run parts of quay.
First, start redis:
```
docker run -d -p 6379:6379 redis
```
And clone the configuration repo:
```
git clone git@github.com:coreos-inc/quay-config.git ../quay-config
ln -s ../../quay-config/local conf/stack
```
To build and run a docker container, pass one argument to local-docker.sh:
- `dev`: run quay on port 5000
- `buildman`: run the buildmanager
- `notifications`: run the notification worker
- `test`: run the unit tests
- `initdb`: clear and initialize the test database
For example:
```
./local-docker.sh dev
````
will start quay in a docker container.
Now quay will be running on: http://127.0.0.1:5000
The username is `devtable` and the password is `password`.
### OS X
```
git clone git@github.com:coreos-inc/quay.git
cd quay
./contrib/osx/local-setup.sh
```
Now run the server; it will use sqlite as the SQL server.
```
./local-run.sh
```
Now quay will be running on: http://127.0.0.1:5000
The username is `devtable` and the password is `password`.
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
```
## Update Requirements
1. Create a new virtualenv
2. Activate new virtualenv
3. Install unversioned dependencies
4. Run tests
5. Freeze requirements
6. Deactivate virtualenv
7. Remove virtualenv
Example (commands may differ dependending on virtualenv tools):
```
pyenv virtualenv 2.7.11 quay-deps
pyenv activate quay-deps
pip install -r requirements-nover.txt
./local-test.sh
pip freeze > requirements.txt
pyenv deactivate quay-deps
pyenv uninstall quay-deps
```