This repository has been archived by the owner on Jan 3, 2024. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
201 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
YNAB_EMAIL=e@mail.com | ||
YNAB_PASSWORD=ynab_password | ||
YNAB_BUDGET=budget_name_on_ynab | ||
NUBANK_TOKEN=nubank_token | ||
NUBANK_CERT=nubank_cert_encoded_in_base64 | ||
STARTING_POINT=2021-01-01 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,186 @@ | ||
FROM alpine:3.13 | ||
# | ||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh" | ||
# | ||
# PLEASE DO NOT EDIT IT DIRECTLY. | ||
# | ||
|
||
FROM alpine:3.13 | ||
|
||
# ensure local python is preferred over distribution python | ||
ENV PATH /usr/local/bin:$PATH | ||
|
||
# http://bugs.python.org/issue19846 | ||
# > At the moment, setting "LANG=C" on a Linux system *fundamentally breaks Python 3*, and that's not OK. | ||
ENV LANG C.UTF-8 | ||
|
||
# runtime dependencies | ||
RUN set -eux; \ | ||
apk add --no-cache \ | ||
# install ca-certificates so that HTTPS works consistently | ||
ca-certificates \ | ||
; | ||
# other runtime dependencies for Python are installed later | ||
|
||
ENV GPG_KEY 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D | ||
ENV PYTHON_VERSION 3.6.13 | ||
|
||
RUN set -ex \ | ||
&& apk add --no-cache --virtual .fetch-deps \ | ||
gnupg \ | ||
tar \ | ||
xz \ | ||
\ | ||
&& wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" \ | ||
&& wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" \ | ||
&& export GNUPGHOME="$(mktemp -d)" \ | ||
&& gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$GPG_KEY" \ | ||
&& gpg --batch --verify python.tar.xz.asc python.tar.xz \ | ||
&& { command -v gpgconf > /dev/null && gpgconf --kill all || :; } \ | ||
&& rm -rf "$GNUPGHOME" python.tar.xz.asc \ | ||
&& mkdir -p /usr/src/python \ | ||
&& tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \ | ||
&& rm python.tar.xz \ | ||
\ | ||
&& apk add --no-cache --virtual .build-deps \ | ||
bluez-dev \ | ||
bzip2-dev \ | ||
coreutils \ | ||
dpkg-dev dpkg \ | ||
expat-dev \ | ||
findutils \ | ||
gcc \ | ||
gdbm-dev \ | ||
libc-dev \ | ||
libffi-dev \ | ||
libnsl-dev \ | ||
libtirpc-dev \ | ||
linux-headers \ | ||
make \ | ||
ncurses-dev \ | ||
openssl-dev \ | ||
pax-utils \ | ||
readline-dev \ | ||
sqlite-dev \ | ||
tcl-dev \ | ||
tk \ | ||
tk-dev \ | ||
xz-dev \ | ||
zlib-dev \ | ||
# add build deps before removing fetch deps in case there's overlap | ||
&& apk del --no-network .fetch-deps \ | ||
\ | ||
&& cd /usr/src/python \ | ||
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ | ||
&& ./configure \ | ||
--build="$gnuArch" \ | ||
--enable-loadable-sqlite-extensions \ | ||
--enable-optimizations \ | ||
--enable-option-checking=fatal \ | ||
--enable-shared \ | ||
--with-system-expat \ | ||
--with-system-ffi \ | ||
--without-ensurepip \ | ||
&& make -j "$(nproc)" \ | ||
# set thread stack size to 1MB so we don't segfault before we hit sys.getrecursionlimit() | ||
# https://github.com/alpinelinux/aports/commit/2026e1259422d4e0cf92391ca2d3844356c649d0 | ||
EXTRA_CFLAGS="-DTHREAD_STACK_SIZE=0x100000" \ | ||
LDFLAGS="-Wl,--strip-all" \ | ||
# setting PROFILE_TASK makes "--enable-optimizations" reasonable: https://bugs.python.org/issue36044 / https://github.com/docker-library/python/issues/160#issuecomment-509426916 | ||
PROFILE_TASK='-m test.regrtest --pgo \ | ||
test_array \ | ||
test_base64 \ | ||
test_binascii \ | ||
test_binhex \ | ||
test_binop \ | ||
test_bytes \ | ||
test_c_locale_coercion \ | ||
test_class \ | ||
test_cmath \ | ||
test_codecs \ | ||
test_compile \ | ||
test_complex \ | ||
test_csv \ | ||
test_decimal \ | ||
test_dict \ | ||
test_float \ | ||
test_fstring \ | ||
test_hashlib \ | ||
test_io \ | ||
test_iter \ | ||
test_json \ | ||
test_long \ | ||
test_math \ | ||
test_memoryview \ | ||
test_pickle \ | ||
test_re \ | ||
test_set \ | ||
test_slice \ | ||
test_struct \ | ||
test_threading \ | ||
test_time \ | ||
test_traceback \ | ||
test_unicode \ | ||
' \ | ||
&& make install \ | ||
&& rm -rf /usr/src/python \ | ||
\ | ||
&& find /usr/local -depth \ | ||
\( \ | ||
\( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \ | ||
-o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name '*.a' \) \) \ | ||
-o \( -type f -a -name 'wininst-*.exe' \) \ | ||
\) -exec rm -rf '{}' + \ | ||
\ | ||
&& find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec scanelf --needed --nobanner --format '%n#p' '{}' ';' \ | ||
| tr ',' '\n' \ | ||
| sort -u \ | ||
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ | ||
| xargs -rt apk add --no-cache --virtual .python-rundeps \ | ||
&& apk del --no-network .build-deps \ | ||
\ | ||
&& python3 --version | ||
|
||
# make some useful symlinks that are expected to exist | ||
RUN cd /usr/local/bin \ | ||
&& ln -s idle3 idle \ | ||
&& ln -s pydoc3 pydoc \ | ||
&& ln -s python3 python \ | ||
&& ln -s python3-config python-config | ||
|
||
# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value '<VERSION>'" | ||
ENV PYTHON_PIP_VERSION 21.0.1 | ||
# https://github.com/pypa/get-pip | ||
ENV PYTHON_GET_PIP_URL https://github.com/pypa/get-pip/raw/29f37dbe6b3842ccd52d61816a3044173962ebeb/public/get-pip.py | ||
ENV PYTHON_GET_PIP_SHA256 e03eb8a33d3b441ff484c56a436ff10680479d4bd14e59268e67977ed40904de | ||
|
||
RUN set -ex; \ | ||
\ | ||
wget -O get-pip.py "$PYTHON_GET_PIP_URL"; \ | ||
echo "$PYTHON_GET_PIP_SHA256 *get-pip.py" | sha256sum -c -; \ | ||
\ | ||
python get-pip.py \ | ||
--disable-pip-version-check \ | ||
--no-cache-dir \ | ||
"pip==$PYTHON_PIP_VERSION" \ | ||
; \ | ||
pip --version; \ | ||
\ | ||
find /usr/local -depth \ | ||
\( \ | ||
\( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \ | ||
-o \ | ||
\( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \ | ||
\) -exec rm -rf '{}' +; \ | ||
rm -f get-pip.py | ||
|
||
|
||
# CUSTOMIZATIONS START HERE | ||
RUN apk add --no-cache build-base libffi-dev gcc musl-dev python3-dev libffi-dev openssl-dev cargo libxml2-dev libxslt-dev | ||
|
||
WORKDIR /src | ||
COPY requirements.txt . | ||
RUN pip install -r requirements.txt --use-deprecated=legacy-resolver | ||
COPY nubank_sync_ynab/ /src/nubank_sync_ynab | ||
|
||
ENTRYPOINT ["python", "nubank_sync_ynab/sync.py"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,7 @@ | ||
coverage==4.4.1 | ||
coverage==4.0.3 | ||
freezegun==0.3.9 | ||
pynubank==2.1.0 | ||
pynYNAB==0.5.4 | ||
requests==2.20.0 | ||
requests-mock==1.3.0 | ||
python-coveralls==2.9.1 | ||
coverage==4.4.1 |