Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Dockerfile & entrypoint.sh #16

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

pekermert
Copy link

I create a simple Dockerfile to build on my machine to try and deploy on container environments.

@brandesdavid
Copy link

cool man

@Zeng1998
Copy link

I can not run it on my machine...

Could you please tell me what other thing I need.

196 static files copied to '/app/staticfiles', 184 post-processed.
Apply database migrations
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 86, in _execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 396, in execute
    return Database.Cursor.execute(self, query, params)
sqlite3.OperationalError: no such table: django_site

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "manage.py", line 21, in <module>
    main()
  File "manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 395, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.6/site-packages/django/core/management/base.py", line 328, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.6/site-packages/django/core/management/base.py", line 366, in execute
    self.check()
  File "/usr/local/lib/python3.6/site-packages/django/core/management/base.py", line 395, in check
    include_deployment_checks=include_deployment_checks,
  File "/usr/local/lib/python3.6/site-packages/django/core/management/commands/migrate.py", line 64, in _run_checks
    issues.extend(super()._run_checks(**kwargs))
  File "/usr/local/lib/python3.6/site-packages/django/core/management/base.py", line 382, in _run_checks
    return checks.run_checks(**kwargs)
  File "/usr/local/lib/python3.6/site-packages/django/core/checks/registry.py", line 72, in run_checks
    new_errors = check(app_configs=app_configs)
  File "/usr/local/lib/python3.6/site-packages/django/core/checks/urls.py", line 13, in check_url_config
    return check_resolver(resolver)
  File "/usr/local/lib/python3.6/site-packages/django/core/checks/urls.py", line 23, in check_resolver
    return check_method()
  File "/usr/local/lib/python3.6/site-packages/django/urls/resolvers.py", line 407, in check
    for pattern in self.url_patterns:
  File "/usr/local/lib/python3.6/site-packages/django/utils/functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lib/python3.6/site-packages/django/urls/resolvers.py", line 588, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/usr/local/lib/python3.6/site-packages/django/utils/functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lib/python3.6/site-packages/django/urls/resolvers.py", line 581, in urlconf_module
    return import_module(self.urlconf_name)
  File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/app/textblog/urls.py", line 12, in <module>
    path('', include('blogs.urls')),
  File "/usr/local/lib/python3.6/site-packages/django/urls/conf.py", line 34, in include
    urlconf_module = import_module(urlconf_module)
  File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/app/blogs/urls.py", line 4, in <module>
    from .views import blog, dashboard, feed, discover, analytics, emailer
  File "/app/blogs/views/dashboard.py", line 14, in <module>
    from blogs.forms import BlogForm, DomainForm, PostForm, StyleForm
  File "/app/blogs/forms.py", line 140, in <module>
    class PostForm(forms.ModelForm):
  File "/app/blogs/forms.py", line 190, in PostForm
    help_text=f"Make post discoverable at <a href='http://{root()}/discover/' target='_blank'>{root()}/discover</a>",
  File "/app/blogs/helpers.py", line 16, in root
    domain = Site.objects.get_current().domain
  File "/usr/local/lib/python3.6/site-packages/django/contrib/sites/models.py", line 58, in get_current
    return self._get_site_by_id(site_id)
  File "/usr/local/lib/python3.6/site-packages/django/contrib/sites/models.py", line 30, in _get_site_by_id
    site = self.get(pk=site_id)
  File "/usr/local/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", line 411, in get
    num = len(clone)
  File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", line 258, in __len__
    self._fetch_all()
  File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", line 1261, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", line 57, in __iter__
    results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
  File "/usr/local/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1152, in execute_sql
    cursor.execute(sql, params)
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 68, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 86, in _execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.6/site-packages/django/db/utils.py", line 90, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 86, in _execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 396, in execute
    return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such table: django_site
Starting server
[2021-07-16 13:25:31 +0000] [12] [INFO] Starting gunicorn 20.0.4
[2021-07-16 13:25:31 +0000] [12] [INFO] Listening at: http://0.0.0.0:8080 (12)
[2021-07-16 13:25:31 +0000] [12] [INFO] Using worker: sync
[2021-07-16 13:25:31 +0000] [15] [INFO] Booting worker with pid: 15

@HermanMartinus
Copy link
Owner

For something like this I'd try deleting your sqlite db and then rerunning make migrations then migrate and see what happens.

@Zeng1998
Copy link

For something like this I'd try deleting your sqlite db and then rerunning make migrations then migrate and see what happens.

The error occurred while migrating the database, so I can find any sqlite db file generated on disk.
I am not good at django, I don't know if I am misunderstand it.

@HermanMartinus
Copy link
Owner

Try making migrations python manage.py makemigrations then migrating instead of just migrating.

@Zeng1998
Copy link

Still the same errors...

@martinmckenna
Copy link

martinmckenna commented Feb 1, 2023

^^ the errors above are because some of the source code is trying to read from tables that don't exist yet. when i got this project running I had to comment out Site.objects.get_current().domain in both blogs/helpers.py and blogs/views/discover.py, then run python manage.py migrate then finally add back the commented out code to get a working database.

there probably needs to be some script to init the database before running the source. otherwise, i don't think it's in a place to have a working Dockerfile atm

@martinmckenna
Copy link

martinmckenna commented Feb 1, 2023

actually i lied it's totally possible to get the Dockefile working by forcing a DB init by just copying over the relevant model files (and their dependencies) to the Docker container, running the migrations/init the DB, then copy over the rest of it

@pekermert i PRed your PR with changes. hopefully this works on your end (also you'll have to rebase in the latest master branch to get rid of all the noisy changes):

pekermert#1

these are the files of interest tho that were changed:

https://github.com/pekermert/bearblog/pull/1/files#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557

https://github.com/pekermert/bearblog/pull/1/files#diff-e45e45baeda1c1e73482975a664062aa56f20c03dd9d64a827aba57775bed0d3

https://github.com/pekermert/bearblog/pull/1/files#diff-79738685a656fe6b25061bb14181442210b599f746faeaba408a2401de45038a

https://github.com/pekermert/bearblog/pull/1/files#diff-bbca18b67be19892751f93975383cebb853ac6f054c9f38703040f30b495dc92

@martinmckenna
Copy link

i can also PR this fresh again to this repo if this PR isn't being looked at anymore

@chenghui-lee
Copy link

Would be great if this project supports Docker

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants