Django with Docker: Add Postgres

sudo yum install -y docker-compose

Craete new docker-compose.yml

version: "3"
services:

  db:
    image: postgres
    restart: always
    environment:
      POSTGRES_DB: dj
      POSTGRES_USER: dj
      POSTGRES_PASSWORD: should_use_env
      PGDATA: /data
    volumes:
      - db-data:/var/lib/postgresql/data
    networks:
      - backend

  web:
    build: .
    restart: always
    depends_on:
      - db
    ports:
      - 8000:8000
    environment:
      POSTGRES_DB: dj
      POSTGRES_USER: dj
      POSTGRES_PASSWORD: should_use_env
      POSTGRES_HOST: db
    volumes:
      - .:/app
    networks:
      - backend

networks:
  backend:

volumes:
  db-data:

Add to requirements.txt

psycopg2==2.7.3.2

Change DATABASE section in apps/apps/settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': os.environ.get('POSTGRES_DB', ''),
        'USER': os.environ.get('POSTGRES_USER', ''),
        'PASSWORD': os.environ.get('POSTGRES_PASSWORD', ''),
        'HOST': os.environ.get('POSTGRES_HOST', ''),
    }   
}

docker-compose up -d
docker exec -it dockerdjango_web_1 ./apps/manage.py migrate 
docker exec -it dockerdjango_web_1 ./apps/manage.py createsuperuser

Django with Docker: Build an Image

Bootstrap Django

mkdir docker-django && cd docker-django
docker run --rm -it  -v $PWD:/app -p 8000:8000 python:3.6 bash
# --rm         # Remove container after finishing bootstrapping
# -it          # Interactive Mode
# -v $PWD:/app # Mount current directory to /app
# -p 8000:8000 # Expose port 8000 as 8000
cd /app
pip install django
pip freeze > requirements.txt
django-admin startproject apps
sed -i.bak 's/^ALLOWED_HOSTS.*/ALLOWED_HOSTS = ["*"]/' apps/apps/settings.py 
./apps/manage.py runserver 0.0.0.0:8000

Custom Image

cat  << EOF > Dockerfile
FROM python:3.6-alpine
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 8000
CMD ["python", "./apps/manage.py", "runserver", "0.0.0.0:8000"]
EOF

docker build -t my-dj-image .
docker run --name my-dj-container --rm -p 8000:8000 my-dj-image
docker run --name my-dj-container --rm -p 8000:8000 -v $PWD:/app my-dj-image   # You can update your code
docker run --name my-dj-container --rm -p 8000:8000 -v $PWD:/app -d my-dj-image .  # -d Detach
docker exec -it my-dj-container /app/apps/manage.py migrate
docker exec -it my-dj-container /app/apps/manage.py createsuperuser

Go Language Setup for Multiple Projects

When working with Go language you must setup the GOPATH environment variable, but soon you will face two problems:

  • Each project should have its own Go dependencies and its own Git code repo, so putting your source under GOPATH would be problematic.
  • When working with “Atom” with “Go Plus” plugin, it needs to install several Go packages which would pollute your own source.

To solve both problems I added the following to my “.bash_login”:

export GOPATH=$HOME/go
alias atom='PATH=$PATH:$HOME/go/bin GOPATH=$HOME/go:$GOPATH atom'
gpp() {
        export GOPATH=`pwd`
}

It perform the following:

  • Set a default GOPATH to $HOME/go_sandbox for testing small Go projects
  • Set an alias for “atom” to add an extra dir in GOPATH and PATH, so whatever GO Plus plugin add won’t be add to your current GOPATH
  • Setup a “gpp” function to quickly change GOPATH to current directory

أين تذهب في استراليا

لا يرتبط اسم استراليا مع السياحة لدى الكثيرين منا، على الرغم من انها مقصد سياحي عالمي مهم خصوصا لدى الدول الآسيوية القريبة منها.

سأذكر بشكل موجز مزايا وعيوب السفر الى استراليا:

المزايا:
– سهولة اجرآت التأشيرة الاسترالية: يتم التقديم على تأشيرة الزيارة من خلال الانترنت، ويتم الحصول عليها الكترونيا في فترة قصيرة (اقل من اسبوع).
– تنوع الخيارات فكل من سيدني وملبورن وجولد كوست لها طابعها الخاص.
– الاسعار متوسطة، ويمكن استرجاع بعض ضرائب المبيعات عند مغادرة البلد.
– الشعب الاستراليا ودود.
– قلة الزحمة في الصيف.
– الرحلات الداخلية اسعارها معقولة.
– صيفنا شتآهم: نظرا لكون استراليا تقع في النص الجنوبي من الكرة الارضية فان فترة الصيف عندنا تكون هي فصل الشتاء عندهم، مما يعني ان الطقس معتدل الى بارد.
– احد الخيارات القليلة عالميا عند لرغبة في السفر شتاءً.

العيوب:
– لا توجد رحلات مباشرة من السعودية الى استراليا، واسهل الخيارات هي رحلات الاماراتية من دبي وتستغرق الرحلة ١٤ ساعة الى سيدني، من ناحية أخرى تتوفر رحلات من دبي الى جميع المدن الرئيسية في استراليا مما يعطي مرونة في خط السفر بحيث تذهب من مدينة وتعود من اخرى.
– التكلفة العالية لتذاكر الطيران حيث يكلف المقعد الاقتصادي قرابة ٧ الآف ريال او اكثر.
– نظرا لان الطقس بارد خلال الصيف فان الفعاليات تكون قليلة وكذلك يصعب الاستمتاع بالبحر والمنتزهات المائية، وقد يكون بارد جداً لدرجة يصعب الخروج فيها ليلاً.
– خيارات التسوق محدودة.
– قيادة السيارة في اليمين، مما يصعب القيادة وتحتاج بعض تعود، على الرغم من المدينة الوحيدة التي قد تحتاج فيها سيارة هي جولد كوست.

كما كتبت مقالات مفصلة عن المدن السياحية الثلاثة التي تستحق الزيارة في استراليا:
سيدني
ملبورن
جولد كوست

أين تذهب في ملبورن استراليا

المركزالفني وساحة فيديراشن سكوير ACMI Cultural Center and Federation Square

المركز الاسترالي للصور المتحركة ACMI هو معرض مخصص للمحافظة على كل ما يتعلق بالصور والافلام، لكن بغض النظر عن اهتماماتك المبنى يعد من ابرز المباني في ملبورن ويلتصق به ساحة فيديراشن وهي ساحة كبيرة تقام فيه العديد من الفعاليات، وكذلك على بعد خطوات من محطة فليندر ستريت اكبر محطات القطارات في ملبورن، كما انه يطل على نهر يارا وحدائق اليكساندرا، ومن الجهة الاخرى من الشارع كاتدرئية ساينت بول، لذلك انصح ان تكون اول محطة في زيارتك لمبلورن هي هذه المنطقة.


Continue reading أين تذهب في ملبورن استراليا

اين تذهب في سيدني استراليا

دار أوبرا سيدني Sydney Opera House

اهم معلم في مدينة سيدني، تحفة معمارية غريبة ومميزة، المبنى مكون من مبنيين على شكل ٣ اصداف متداخلة.
خذ جولة داخل المبنى، واذا حالفك الحظ سيمكنك متابعة بعض المتدربين يعزفون مقطوعة موسيقية.


Continue reading اين تذهب في سيدني استراليا