fix failing docker build and failing helm packaging

This commit is contained in:
Jens Langhammer 2019-02-13 16:41:51 +01:00
parent a9d29067bf
commit b657d7319d
3 changed files with 73 additions and 4 deletions

View File

@ -4,7 +4,7 @@ COPY ./passbook/ /app/passbook
COPY ./manage.py /app/
COPY ./requirements.txt /app/
WORKDIR /source/
WORKDIR /app/
RUN mkdir /app/static/ && \
pip install -r requirements.txt && \
@ -12,7 +12,6 @@ RUN mkdir /app/static/ && \
./manage.py collectstatic --no-input
FROM python:3.6-slim-stretch
# LABEL version="1.8.8"
COPY ./passbook/ /app/passbook
COPY ./manage.py /app/
@ -21,7 +20,6 @@ COPY --from=build /app/static/* /app/static/
WORKDIR /app/
#RUN apk add --no-cache libffi-dev build-base py2-pip python2-dev libxml-dev && \
RUN pip install -r requirements.txt && \
pip install psycopg2 && \
adduser --system --home /app/ passbook && \

View File

@ -0,0 +1,71 @@
"""passbook nexus_upload management command"""
from getpass import getpass
import requests
from django.core.management.base import BaseCommand
class Command(BaseCommand):
"""Upload debian package to nexus repository"""
url = None
user = None
password = None
def add_arguments(self, parser):
parser.add_argument(
'--repo',
action='store',
help='Repository to upload to',
required=True)
parser.add_argument(
'--url',
action='store',
help='Nexus root URL',
required=True)
parser.add_argument(
'--user',
action='store',
help='Username to use for Nexus upload',
required=True)
parser.add_argument(
'--method',
action='store',
nargs='?',
const='post',
choices=['post', 'put'],
help=('Method used for uploading files to nexus. '
'Apt repositories use post, Helm uses put.'),
required=True)
parser.add_argument(
'--password',
action='store',
help=("Password to use for Nexus upload. "
"If parameter not given, we'll interactively ask"))
# Positional arguments
parser.add_argument('file', nargs='+', type=str)
def handle(self, *args, **options):
"""Upload debian package to nexus repository"""
if options.get('password') is None:
options['password'] = getpass()
responses = {}
url = 'https://%(url)s/repository/%(repo)s//' % options
method = options.get('method')
exit_code = 0
for file in options.get('file'):
if method == 'post':
responses[file] = requests.post(url, data=open(file, mode='rb'),
auth=(options.get('user'), options.get('password')))
else:
responses[file] = requests.put(url+file, data=open(file, mode='rb'),
auth=(options.get('user'), options.get('password')))
self.stdout.write('Upload results:\n')
sep = '-' * 60
self.stdout.write('%s\n' % sep)
for path, response in responses.items():
self.stdout.write('%-55s: %d\n' % (path, response.status_code))
if response.status_code >= 400:
exit_code = 1
self.stdout.write('%s\n' % sep)
exit(exit_code)

View File

@ -23,7 +23,7 @@ web:
listen: 0.0.0.0
port: 8000
threads: 30
debug: true
debug: false
secure_proxy_header:
HTTP_X_FORWARDED_PROTO: https
redis: localhost