58 lines
		
	
	
		
			No EOL
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			No EOL
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| # vim:ft=dockerfile
 | |
| 
 | |
| FROM quay.io/quay/quay-base:latest
 | |
| 
 | |
| WORKDIR $QUAYDIR
 | |
| 
 | |
| COPY requirements.txt requirements-tests.txt ./
 | |
| 
 | |
| # Check python dependencies for the GPL
 | |
| # Due to the following bug, pip results must be piped to a file before grepping:
 | |
| # https://github.com/pypa/pip/pull/3304
 | |
| RUN cat requirements.txt | grep -v "^-e" | awk -F'==' '{print $1}' | xargs venv/bin/pip --disable-pip-version-check show > pipinfo.txt && \
 | |
|     test -z $(cat pipinfo.txt | grep GPL | grep -v LGPL) && \
 | |
|     rm pipinfo.txt
 | |
| 
 | |
| RUN virtualenv --distribute venv \
 | |
|     && venv/bin/pip install -r requirements.txt \
 | |
|     && venv/bin/pip install -r requirements-tests.txt \
 | |
|     && venv/bin/pip freeze
 | |
| 
 | |
| # Install front-end dependencies
 | |
| # JS dependencies
 | |
| COPY yarn.lock package.json tsconfig.json webpack.config.js tslint.json ./
 | |
| RUN yarn install --ignore-engines
 | |
| 
 | |
| # JS compile
 | |
| COPY static static
 | |
| RUN yarn build \
 | |
|     && jpegoptim static/img/**/*.jpg \
 | |
|     && optipng -clobber -quiet static/img/**/*.png
 | |
| 
 | |
| COPY . .
 | |
| 
 | |
| # Update local copy of AWS IP Ranges.
 | |
| RUN curl https://ip-ranges.amazonaws.com/ip-ranges.json -o util/ipresolver/aws-ip-ranges.json
 | |
| 
 | |
| # Set up the init system
 | |
| RUN mkdir -p /etc/my_init.d /etc/systlog-ng /usr/local/bin /etc/monit static/fonts static/ldn /usr/local/nginx/logs/ \
 | |
|     && cp $QUAYCONF/init/*.sh /etc/my_init.d/ \
 | |
|     && cp $QUAYCONF/init/syslog-ng.conf /etc/syslog-ng/ \
 | |
|     && cp $QUAYCONF/kill-buildmanager.sh /usr/local/bin/kill-buildmanager.sh \
 | |
|     && cp $QUAYCONF/monitrc /etc/monit/monitrc \
 | |
|     && chmod 0600 /etc/monit/monitrc \
 | |
|     && cp $QUAYCONF/init/logrotate.conf /etc/logrotate.conf \
 | |
|     && cp .git/HEAD GIT_HEAD \
 | |
|     && rm -rf /etc/service/syslog-forwarder
 | |
| 
 | |
| RUN ln -s $QUAYCONF /conf
 | |
| 
 | |
| # Cleanup any NPM-related stuff.
 | |
| # RUN apt-get remove -y --auto-remove python-dev g++ libjpeg62-dev libevent-dev libldap2-dev libsasl2-dev libpq-dev libffi-dev libgpgme11-dev nodejs jpegoptim optipng w3m \
 | |
| #     && apt-get autoremove -y \
 | |
| #     && apt-get clean
 | |
| #     && rm -rf /root/.npm /.npm /usr/local/lib/node_modules /usr/share/yarn/node_modules \
 | |
| #            /root/node_modules /node_modules /grunt
 | |
| RUN PYTHONPATH=$QUAYPATH venv/bin/alembic heads | grep -E '^[0-9a-f]+ \(head\)$' > ALEMBIC_HEAD
 | |
| 
 | |
| CMD ./quay-entrypoint.sh |