Skip to content

Commit

Permalink
fix builder
Browse files Browse the repository at this point in the history
  • Loading branch information
mosquito committed Oct 15, 2018
1 parent fedb0cb commit dadf6ea
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 36 deletions.
77 changes: 45 additions & 32 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,39 +1,52 @@
FROM alpine
FROM snakepacker/python:all as builder

MAINTAINER Mosquito <me@mosquito.su>

RUN apt-get update && \
apt-get install -y \
libcurl-openssl1.0-dev \
libmysqlclient-dev \
libpq-dev \
libssl1.0-dev \
libxml2-dev \
libxslt1-dev \
libffi-dev

RUN virtualenv -p python2.7 /usr/share/python/app

RUN /usr/share/python/app/bin/pip install -U \
pypi-server[postgres] \
pypi-server[mysql] \
pypi-server[proxy]

COPY docker-entrypoint.py /usr/share/python/app/bin/entrypoint.py

RUN chmod a+x /usr/share/python/app/bin/entrypoint.py

#################################################################
FROM snakepacker/python:2.7

RUN apt-get update && \
apt-get install -y \
libcurl3 \
libmysqlclient20 \
libpq5 \
libssl1.0.0 \
libxml2 \
libxslt1.1 \
libffi6 && \
apt-get clean && \
rm -fr /var/lib/apt/lists/*

ENV ADDRESS=0.0.0.0
ENV PORT=80
ENV STORAGE=/usr/lib/pypi-server
ENV PYPI_SERVER_SRC=/usr/local/src/pypi-server

RUN apk add --no-cache \
libffi \
py-cparser \
py-curl \
py-lxml \
py-mysqldb \
py-openssl \
py-psycopg2 \
py-setuptools

COPY ./ /tmp

RUN set -ex && \
apk add --no-cache --virtual .build-deps \
gcc \
libffi-dev \
musl-dev \
py-pip \
python-dev \
&& \
pip --no-cache-dir install -U '/tmp' && \
apk del .build-deps

VOLUME "/usr/lib/pypi-server"

COPY docker-entrypoint.py /usr/local/bin/entrypoint.py
RUN chmod a+x /usr/local/bin/entrypoint.py
ENV STORAGE=/var/lib/pypi-server

EXPOSE 80

ENTRYPOINT ["/usr/local/bin/entrypoint.py"]
COPY --from=builder /usr/share/python/app /usr/share/python/app
RUN ln -snf /usr/share/python/app/bin/entrypoint.py /usr/bin/ && \
ln -snf /usr/share/python/app/bin/pypi-server /usr/bin/

ENTRYPOINT /usr/bin/entrypoint.py
VOLUME "/var/lib/pypi-server"
6 changes: 4 additions & 2 deletions docker-entrypoint.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/python
#!/usr/bin/env python2.7
import socket
import os
import sys
Expand Down Expand Up @@ -31,7 +31,9 @@ def check_port(host, port):
args = sys.argv[1:]

if not args or args[0].startswith('-'):
db_url = parse_url(os.getenv('DB', ''))
db_url = parse_url(os.getenv(
'DB', "sqlite:///var/lib/pypi-server/pypi-server.sqlite3"
))
host = db_url.hostname

if 'sqlite' in db_url.scheme.lower():
Expand Down
5 changes: 4 additions & 1 deletion package/Dockerfile.centos7
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,13 @@ RUN yum install -y python-pip python-devel make gcc
RUN pip install -U pip virtualenv sh plumbum
RUN yum install -y \
libcurl-devel \
libcurl-openssl-devel \
libffi-devel \
libpqxx-devel \
libxml2-devel \
libxslt-devel \
mariadb-devel \
openssl-devel \
postgresql-devel
postgresql-devel

ENV PYCURL_SSL_LIBRARY=openssl
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ def walker(base, *paths):
),
extras_require={
'mysql': ['mysqlclient'],
'postgres': ['psycopg2'],
'postgres': ['psycopg2-binary'],
'proxy': ['pycurl'],
}
)

0 comments on commit dadf6ea

Please sign in to comment.