Skip to content

Commit 9c79306

Browse files
authored
Merge pull request #33 from makinacorpus/optims
Optims
2 parents 41aaaf6 + d586d30 commit 9c79306

File tree

9 files changed

+139
-40
lines changed

9 files changed

+139
-40
lines changed

.github/workflows/test.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ jobs:
3737
eslint:
3838
runs-on: ubuntu-18.04
3939
name: Check javascript linting
40+
env:
41+
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: 1
4042
steps:
4143
- uses: actions/checkout@v2
4244
- name: Setup node
@@ -67,7 +69,7 @@ jobs:
6769
sudo apt-get update -q
6870
sudo apt-get -q -y install nodejs npm ca-certificates
6971
python -m pip install --upgrade pip setuptools wheel
70-
pip install -r requirements.txt -U
72+
pip install -r dev-requirements.txt -U
7173
npm ci
7274
- name: Test with coverage
7375
run: |
@@ -85,7 +87,10 @@ jobs:
8587
needs: [test]
8688
steps:
8789
- uses: actions/checkout@v2
88-
- name: Build docker image
90+
- name: Set up Docker Buildx
91+
id: buildx
92+
uses: docker/setup-buildx-action@v1
93+
- name: Build Docker image
8994
run: |
9095
docker build -t screamshotter_ci:latest .
9196
- name: Upload image

Dockerfile

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ ENV PYTHONUNBUFFERED 1
44
ENV DEBIAN_FRONTEND noninteractive
55
ENV LANG C.UTF-8
66
ENV COLLECTSTATIC 1
7-
ARG NODE_ENV=production
7+
88
RUN useradd -ms /bin/bash django
99
RUN mkdir -p /app
10+
RUN chown django:django /app
1011

1112
RUN apt-get -qq update && apt-get install -qq -y \
1213
gconf-service \
@@ -62,27 +63,29 @@ ENTRYPOINT ["entrypoint.sh"]
6263

6364
FROM base as dev
6465

66+
ARG NODE_ENV=production
67+
ARG REQUIREMENTS=requirements.txt
68+
6569
RUN apt-get -qq update && apt-get install -qq -y \
6670
build-essential \
6771
python3.8-dev python3.8-venv python3.8-distutils && \
6872
apt-get clean all && rm -rf /var/apt/lists/* && rm -rf /var/cache/apt/*
6973

7074
# install pip & requirements
7175
RUN wget https://bootstrap.pypa.io/get-pip.py && python3.8 get-pip.py && rm get-pip.py
76+
77+
USER django
7278
RUN python3.8 -m venv /app/venv
7379
RUN /app/venv/bin/pip3 install --no-cache-dir pip setuptools wheel -U
7480

75-
COPY requirements.txt /requirements.txt
76-
RUN /app/venv/bin/pip3 install --no-cache-dir -r /requirements.txt -U
81+
COPY ${REQUIREMENTS} /app/requirements.txt
82+
RUN /app/venv/bin/pip3 install --no-cache-dir -r /app/requirements.txt -U && rm /app/requirements.txt
7783
RUN /app/venv/bin/nodeenv /app/venv/ -C '' -p -n 14.15.5
7884

7985
# upgrade npm & requirements
8086
COPY package.json /app/package.json
8187
COPY package-lock.json /app/package-lock.json
82-
RUN . /app/venv/bin/activate && npm ci
83-
RUN mkdir -p /app/static
84-
RUN chown django:django -R /app
85-
USER django
88+
RUN . /app/venv/bin/activate && npm ci && rm /app/*.json
8689

8790
CMD ["./manage.py", "runserver", "0.0.0.0:8000"]
8891

@@ -93,7 +96,6 @@ COPY --from=dev /app/node_modules /app/node_modules
9396
COPY src /app/src
9497

9598
RUN mkdir -p /app/static
96-
RUN chown django:django /app/static
9799

98100
VOLUME /app/static
99101

debian/changelog

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
screamshotter (2.0.6) UNRELEASED; urgency=medium
1+
screamshotter (2.0.6) RELEASED; urgency=medium
22

33
* Increase Puppeteer default timeouts
4+
* Optimize npm install in debian packages
45

56
-- Jean-Etienne Castagnede <[email protected]> Fri, 20 Apr 2021 11:32:00 +0200
67

debian/rules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ override_dh_virtualenv:
1010
debian/screamshotter/opt/screamshotter/bin/python debian/screamshotter/opt/screamshotter/bin/pip install nodeenv==1.5.0
1111
debian/screamshotter/opt/screamshotter/bin/nodeenv -C '' -p -n 14.15.5
1212
cp package.json package-lock.json debian/screamshotter/opt/screamshotter/
13-
. debian/screamshotter/opt/screamshotter/bin/activate && npm ci -g --unsafe-perm=true
13+
. debian/screamshotter/opt/screamshotter/bin/activate && npm ci --production -g --unsafe-perm=true
1414

1515
.PHONY: override_dh_strip override_dh_shlibdeps
1616

dev-requirements.in

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
-r requirements.txt
2+
3+
coverage
4+
flake8
5+
Pillow
6+
python-magic
7+
django-debug-toolbar

dev-requirements.txt

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
#
2+
# This file is autogenerated by pip-compile
3+
# To update, run:
4+
#
5+
# pip-compile dev-requirements.in
6+
#
7+
asgiref==3.3.4
8+
# via
9+
# -r requirements.txt
10+
# django
11+
certifi==2020.12.5
12+
# via
13+
# -r requirements.txt
14+
# requests
15+
chardet==4.0.0
16+
# via
17+
# -r requirements.txt
18+
# requests
19+
coreapi==2.3.3
20+
# via -r requirements.txt
21+
coreschema==0.0.4
22+
# via
23+
# -r requirements.txt
24+
# coreapi
25+
coverage==5.5
26+
# via -r dev-requirements.in
27+
django-debug-toolbar==3.2.1
28+
# via -r dev-requirements.in
29+
django==3.2
30+
# via
31+
# -r requirements.txt
32+
# django-debug-toolbar
33+
# djangorestframework
34+
djangorestframework==3.12.4
35+
# via -r requirements.txt
36+
flake8==3.9.1
37+
# via -r dev-requirements.in
38+
gevent==21.1.2
39+
# via
40+
# -r requirements.txt
41+
# gunicorn
42+
greenlet==1.0.0
43+
# via
44+
# -r requirements.txt
45+
# gevent
46+
gunicorn[gevent]==20.1.0
47+
# via -r requirements.txt
48+
idna==2.10
49+
# via
50+
# -r requirements.txt
51+
# requests
52+
itypes==1.2.0
53+
# via
54+
# -r requirements.txt
55+
# coreapi
56+
jinja2==2.11.3
57+
# via
58+
# -r requirements.txt
59+
# coreschema
60+
markupsafe==1.1.1
61+
# via
62+
# -r requirements.txt
63+
# jinja2
64+
mccabe==0.6.1
65+
# via flake8
66+
nodeenv==1.6.0
67+
# via -r requirements.txt
68+
pillow==8.2.0
69+
# via -r dev-requirements.in
70+
pycodestyle==2.7.0
71+
# via flake8
72+
pyflakes==2.3.1
73+
# via flake8
74+
python-magic==0.4.22
75+
# via -r dev-requirements.in
76+
pytz==2021.1
77+
# via
78+
# -r requirements.txt
79+
# django
80+
requests==2.25.1
81+
# via
82+
# -r requirements.txt
83+
# coreapi
84+
sqlparse==0.4.1
85+
# via
86+
# -r requirements.txt
87+
# django
88+
# django-debug-toolbar
89+
uritemplate==3.0.1
90+
# via
91+
# -r requirements.txt
92+
# coreapi
93+
urllib3==1.26.4
94+
# via
95+
# -r requirements.txt
96+
# requests
97+
whitenoise==5.2.0
98+
# via -r requirements.txt
99+
zope.event==4.5.0
100+
# via
101+
# -r requirements.txt
102+
# gevent
103+
zope.interface==5.4.0
104+
# via
105+
# -r requirements.txt
106+
# gevent
107+
108+
# The following packages are considered to be unsafe in a requirements file:
109+
# setuptools

docker-compose.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ services:
66
target: dev
77
args:
88
- NODE_ENV=development
9+
- REQUIREMENTS=dev-requirements.txt
910
volumes:
1011
- ./src/:/app/src/
1112
ports:

requirements.txt

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,12 @@ coreapi==2.3.3
1414
# via screamshotter (setup.py)
1515
coreschema==0.0.4
1616
# via coreapi
17-
coverage==5.5
18-
# via screamshotter (setup.py)
19-
django-debug-toolbar==3.2.1
20-
# via screamshotter (setup.py)
2117
django==3.2
2218
# via
23-
# django-debug-toolbar
2419
# djangorestframework
2520
# screamshotter (setup.py)
2621
djangorestframework==3.12.4
2722
# via screamshotter (setup.py)
28-
flake8==3.9.1
29-
# via screamshotter (setup.py)
3023
gevent==21.1.2
3124
# via gunicorn
3225
greenlet==1.0.0
@@ -41,26 +34,14 @@ jinja2==2.11.3
4134
# via coreschema
4235
markupsafe==1.1.1
4336
# via jinja2
44-
mccabe==0.6.1
45-
# via flake8
4637
nodeenv==1.6.0
4738
# via screamshotter (setup.py)
48-
pillow==8.2.0
49-
# via screamshotter (setup.py)
50-
pycodestyle==2.7.0
51-
# via flake8
52-
pyflakes==2.3.1
53-
# via flake8
54-
python-magic==0.4.22
55-
# via screamshotter (setup.py)
5639
pytz==2021.1
5740
# via django
5841
requests==2.25.1
5942
# via coreapi
6043
sqlparse==0.4.1
61-
# via
62-
# django
63-
# django-debug-toolbar
44+
# via django
6445
uritemplate==3.0.1
6546
# via coreapi
6647
urllib3==1.26.4

setup.py

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,9 @@
1414
'nodeenv',
1515
'djangorestframework',
1616
'coreapi',
17-
# dev & tests
18-
'coverage',
19-
'flake8',
20-
'Pillow',
21-
'python-magic',
22-
# dev project
23-
'django-debug-toolbar',
17+
'whitenoise',
2418
# prod
2519
'gunicorn[gevent]',
26-
'whitenoise'
2720
],
2821
include_package_data=True,
2922
license='BSD, see LICENSE file.',

0 commit comments

Comments
 (0)