Author Archives: ChristianKreuzberger

Those that have subscribed to my YouTube channel, might have noticed that the content has changed a bit away from Django, with more focus on Docker, Kubernetes, and Keptn.

With that in mind, I would like to share you my recent video series here:

Create Docker Containers for GoLang, NodeJS and Python: https://www.youtube.com/watch?v=oZfPbKZDS8U

How to create a new Keptn project for continuous delivery: https://www.youtube.com/watch?v=7EYVHjOfQTQ

Would love to get some feedback directly on the videos if they are helpful! Thanks!

In one of my recent videos I've disussed the size of the Django/Python Docker Containers and how to decrease it:

I failed to successfully create an image based on alpine, which is known to be very slim. With the help of Aaron Goodrich, who posted a comment with a Dockerfile for alpine, I was able to finally create such an image 🙂 Thanks for the help!

Without further ado, here are the results (and the respective Dockerfiles).

Please note that I have slightly changed the Dockerfile compared to the video above.

Based on Python 3.5 Jessie: 740 MB

FROM python:3.5-jessie

COPY ./app /app
WORKDIR /app

RUN pip install --no-cache-dir -r requirements/dev.txt

Based on Python 3.5 Slim: 188 MB

FROM python:3.5-slim

COPY ./app /app
WORKDIR /app

RUN pip install --no-cache-dir -r requirements/dev.txt

Based on Python 3.5 with Alpine: 248 MB

FROM python:3.5-alpine

COPY ./app /app
WORKDIR /app

RUN apk add --update --no-cache postgresql-client && \
    apk add --update --no-cache --virtual .temp-build-deps gcc libc-dev linux-headers postgresql-dev

RUN pip install --no-cache-dir -r requirements/dev.txt

RUN apk del .temp-build-deps gcc libc-dev linux-headers postgresql-dev

2 Comments

Ever had one of these issues with Pycharm 2018 and Docker?

Couldn't refresh skeletons for remote interpreter
The docker-compose process terminated unexpectedly: /usr/local/bin/docker-compose -f docker-compose.yml -f .PyCharm2018.3/system/tmp/docker-compose.override.8.yml run --rm --name skeleton_generator_643129755 python
Regenerate skeletons

or

can't open file '/opt/.pycharm_helpers/pycharm/django_test_manage.py' + "No such file or directory"

Then you should clear all pycharm helpers from your docker containers and images:

docker ps -a | grep -i pycharm | awk '{print $1}' | xargs docker rm
docker images | grep -i pycharm | awk '{print $3}' | xargs docker rmi

This blog is using wordpress and certain tools of wordpress, that allow collecting statistical data, such as information about your web browser (Browser Name + Version). We do not share this information with any third party (such as Google Analytics), everything is kept within this wordpress blog and server.

Read more about it in our "brand new" Privacy Policy.

Sometimes I just love how the open source community works nowadays! Sometimes you  use your favourite search engine to find a package/repository/etc..., just to find out thatit contains a quickstart info, a proper package.json or docker-compose.yml. All you need to do is "npm install && npm run" or "docker-compose build && docker-compose up" and you are good to go.

This helps devs to contribute to open source software soooooo much!

TL;DR: Use Docker, package.json, requirements.txt, and for the love of god, write a Quickstart section into your Readme!

If you have ever gotten this error with your mod passenger installation:

$ passenger-config restart-app
*** ERROR: Phusion Passenger doesn't seem to be running. If you are sure that it
is running, then the causes of this problem could be one of:

1. You customized the instance registry directory using Apache's
 PassengerInstanceRegistryDir option, Nginx's
 passenger_instance_registry_dir option, or Phusion Passenger Standalone's
 --instance-registry-dir command line argument. If so, please set the
 environment variable PASSENGER_INSTANCE_REGISTRY_DIR to that directory
 and run this command again.
 2. The instance directory has been removed by an operating system background
 service. Please set a different instance registry directory using Apache's
 PassengerInstanceRegistryDir option, Nginx's passenger_instance_registry_dir
 option, or Phusion Passenger Standalone's --instance-registry-dir command
 line argument.

Then you most likely have SystemD running, which uses PrivateTmp folders instead of /tmp folders.

It's annoying, but easy to fix, see this blog post:
https://www.pistolfly.com/weblog/en/2016/01/passenger-config-and-passenger-status-result-in-an-error-on-centos7.html