Skip to content

Commit

Permalink
Added working docker configuration, fixed a requirement
Browse files Browse the repository at this point in the history
  • Loading branch information
akshat0047 committed May 8, 2020
1 parent 833b96a commit 1d9fd61
Show file tree
Hide file tree
Showing 11 changed files with 88 additions and 57 deletions.
6 changes: 6 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.git
.dockerignore
.env
env
venv

16 changes: 9 additions & 7 deletions .sampleenv
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
# Django settings
SECRET_KEY=dUmMy_s3cR3t_k3y
#DB_ENGINE=mysql
#DB_NAME=yaksh
#DB_USER=root
#DB_PASSWORD=root
#DB_HOST=yaksh-db
#DB_PORT=3306
DEBUG=TRUE
#ALLOWED_URLS=
DB_ENGINE=mysql
DB_NAME=yaksh
DB_USER=root
DB_PASSWORD=root
DB_HOST=yaksh-db
DB_PORT=3306
# Yaksh settings
N_CODE_SERVERS=5
#SERVER_POOL_PORT=53579
SERVER_POOL_PORT=55555
#SERVER_HOST_NAME=http://yaksh-codeserver
#SERVER_TIMEOUT=4
18 changes: 10 additions & 8 deletions docker/Dockerfile_codeserver
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
FROM ubuntu:16.04
FROM centos:latest

MAINTAINER FOSSEE <[email protected]>

RUN apt-get update && \
apt-get install git python3-pip libmysqlclient-dev sudo default-jre default-jdk -y
RUN yum update -y && \
yum install git python3-pip mariadb-devel sudo java-1.8.0-openjdk java-1.8.0-openjdk-devel gcc make python3-devel -y

VOLUME /Sites/online_test
RUN mkdir -p /Sites/online_test

ADD Files/requirements-* /tmp/
COPY . /Sites/online_test

RUN pip3 install -r /tmp/requirements-codeserver.txt && mkdir -p /Sites/online_test/yaksh_data/output /Sites/online_test/yaksh_data/data
RUN pip3 install -r /Sites/online_test/requirements/requirements-codeserver.txt

COPY docker/Files/Start-codeserver.sh /Sites

WORKDIR /Sites/online_test

ADD Files/Start-codeserver.sh /Sites
RUN mkdir -p yaksh_data/output yaksh_data/data

EXPOSE 53579
EXPOSE 55555

CMD [ "/bin/bash" , "/Sites/Start-codeserver.sh" ]
18 changes: 10 additions & 8 deletions docker/Dockerfile_django
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
FROM ubuntu:16.04
FROM centos:latest

MAINTAINER FOSSEE <[email protected]>

RUN apt-get update -y && apt-get install git python3-pip vim libmysqlclient-dev sudo -y
RUN dnf update -y && yum install epel-release python3-devel git python3-pip vim mariadb-devel sudo -y

RUN apt-get install apache2 libapache2-mod-wsgi-py3 python3-django -y && mkdir -p /Sites/online_test
RUN yum install mod_wsgi httpd gcc make -y

VOLUME /Sites/online_test
RUN mkdir -p /Sites/online_test

ADD Files/requirements-* /tmp/
COPY . /Sites/online_test

RUN cd /Sites/online_test && pip3 install -r /tmp/requirements-py3.txt
RUN pip3 install -r /Sites/online_test/requirements/requirements-production.txt

ADD Files/000-default.conf /etc/apache2/sites-enabled/
COPY docker/Files/000-default.conf /etc/httpd/conf.d

ADD Files/Docker-script.sh /Sites/Docker-script.sh
COPY docker/Files/Docker-script.sh /Sites/Docker-script.sh

EXPOSE 80

WORKDIR /Sites/online_test

RUN mkdir -p yaksh_data/output yaksh_data/data

CMD [ "/bin/bash" , "/Sites/Docker-script.sh" ]
4 changes: 2 additions & 2 deletions docker/Files/000-default.conf
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@
Allow from all
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ErrorLog /var/log/error.log
CustomLog /var/log/access.log combined
</VirtualHost>
6 changes: 3 additions & 3 deletions docker/Files/Docker-script.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash
chown -R www-data /Sites/online_test
chown -R www-data /Sites/online_test/yaksh
chown -R apache /Sites/online_test
chown -R apache /Sites/online_test/yaksh
chown -R nobody /Sites/online_test/yaksh_data
chmod -R 664 /Sites/online_test
chmod -R +X /Sites
/usr/sbin/apache2ctl -D FOREGROUND
/usr/sbin/httpd -D FOREGROUND
9 changes: 5 additions & 4 deletions docker/Files/Start-codeserver.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/bin/bash
chown -R nobody /Sites/online_test/yaksh_data
chmod -R a+rwX yaksh_data/output
chmod -R a+rX yaksh_data/data
chmod -R o-w yaksh_data/data
#mkdir /Sites/online_test/yaksh_data && mkdir -p /Sites/online_test/yaksh_data/output /Sites/online_test/yaksh_data/data
chown -R nobody:nobody /Sites/online_test/yaksh_data
chmod -R a+rwX /Sites/online_test/yaksh_data/output
chmod -R a+rX /Sites/online_test/yaksh_data/data
chmod -R o-w /Sites/online_test/yaksh_data/data
/usr/bin/sudo -su nobody python3 -m yaksh.code_server
23 changes: 12 additions & 11 deletions docker/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ version: '2'
services:
yaksh-django:
build:
context: .
dockerfile: Dockerfile_django
context: ..
dockerfile: docker/Dockerfile_django
image: yaksh.django
container_name: yaksh_django
volumes:
- ../.:/Sites/online_test
env_file:
- docker.env
depends_on:
- yaksh-db
- yaksh-codeserver
Expand All @@ -18,24 +18,25 @@ services:
- 8000:80
restart: always


yaksh-codeserver:
build:
context: .
dockerfile: Dockerfile_codeserver
context: ..
dockerfile: docker/Dockerfile_codeserver
image: yaksh.codeserver
container_name: yaksh_codeserver
volumes:
- ..:/Sites/online_test
env_file:
- docker.env
restart: always


yaksh-db:
image: mariadb:10.2
container_name: yaksh_db
volumes:
- ./mysql:/var/lib/mysql
- mysql:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: yaksh
restart: always

volumes:
mysql:
15 changes: 15 additions & 0 deletions docker/docker.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Django settings
SECRET_KEY=dUmMy_s3cR3t_k3y
DEBUG=TRUE
#ALLOWED_URLS=*
DB_ENGINE=mysql
DB_NAME=yaksh
DB_USER=root
DB_PASSWORD=root
DB_HOST=yaksh-db
DB_PORT=3306
# Yaksh settings
N_CODE_SERVERS=5
SERVER_POOL_PORT=55555
SERVER_HOST_NAME=http://yaksh-codeserver
SERVER_TIMEOUT=4
28 changes: 15 additions & 13 deletions online_test/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@
SECRET_KEY = config('SECRET_KEY', default='dUmMy_s3cR3t_k3y')

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
DEBUG = config('DEBUG', default='TRUE')

ALLOWED_HOSTS = []
ALLOWED_HOSTS = config('ALLOWED_URLS', default='localhost')

URL_ROOT = ''

Expand Down Expand Up @@ -73,12 +73,10 @@
# https://docs.djangoproject.com/en/1.6/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.{0}'.format(
config('DB_ENGINE', default='sqlite3')
),
'NAME': config('DB_NAME',
default=os.path.join(BASE_DIR, 'db.sqlite3')
),
'ENGINE': 'django.db.backends.{0}'.format(config('DB_ENGINE',
default='sqlite3')),
'NAME': config('DB_NAME', default=os.path.join(BASE_DIR,
'db.sqlite3')),
# The following settings are not used with sqlite3:
'USER': config('DB_USER', default=''),
'PASSWORD': config('DB_PASSWORD', default=''),
Expand Down Expand Up @@ -197,19 +195,23 @@

AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
'NAME': 'django.contrib.auth.password_validation.\
UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
'NAME': 'django.contrib.auth.password_validation.\
MinimumLengthValidator',
'OPTIONS': {
'min_length': 8,
}
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
'NAME': 'django.contrib.auth.password_validation.\
CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
'NAME': 'django.contrib.auth.password_validation.]\
NumericPasswordValidator',
},
]

Expand All @@ -230,4 +232,4 @@
}

CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
CORS_ALLOW_CREDENTIALS = True
2 changes: 1 addition & 1 deletion requirements/requirements-production.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
-r requirements-common.txt
mysqlclient==1.3.9
mysqlclient

0 comments on commit 1d9fd61

Please sign in to comment.