diff --git a/ecs/dataimport/Dockerfile b/ecs/dataimport/Dockerfile index 78ab2fda..60f336d0 100644 --- a/ecs/dataimport/Dockerfile +++ b/ecs/dataimport/Dockerfile @@ -1,16 +1,19 @@ -FROM python:3.9 +FROM python:3.12-slim-bookworm ENV TZ="Asia/Tokyo" +# pythonの標準出力をバッファリングしないフラグ +ENV PYTHONUNBUFFERED=1 +# pythonのバイトコードを生成しないフラグ +ENV PYTHONDONTWRITEBYTECODE=1 WORKDIR /usr/src/app -COPY requirements.txt ./ +COPY Pipfile Pipfile.lock ./ RUN \ apt update -y && \ - # パッケージのセキュリティアップデートのみを適用するコマンド - apt install -y unattended-upgrades && \ - unattended-upgrades && \ - pip install --upgrade pip wheel setuptools && \ - pip install --no-cache-dir -r requirements.txt + pip install pipenv --no-cache-dir && \ + pipenv install --system --deploy && \ + pip uninstall -y pipenv virtualenv-clone virtualenv + COPY dataimport ./ CMD [ "python", "./controller.py" ] diff --git a/ecs/dataimport/Pipfile b/ecs/dataimport/Pipfile new file mode 100644 index 00000000..c5c3c405 --- /dev/null +++ b/ecs/dataimport/Pipfile @@ -0,0 +1,13 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +boto3 = "*" +pymysql = "*" + +[dev-packages] + +[requires] +python_version = "3.12" diff --git a/ecs/dataimport/Pipfile.lock b/ecs/dataimport/Pipfile.lock new file mode 100644 index 00000000..c4eb1d47 --- /dev/null +++ b/ecs/dataimport/Pipfile.lock @@ -0,0 +1,87 @@ +{ + "_meta": { + "hash": { + "sha256": "1738beec0de1a16f127d9bbeef1c9cb1ffb5b2377aa1aedbce9bfacae0fa1c67" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.12" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "boto3": { + "hashes": [ + "sha256:20945912130cca1505f45819cd9b7183a0e376e91a1221a0b1f50c80d35fd7e2", + "sha256:40db86c7732a310b282f595251995ecafcbd62009a57e47a22683862e570cc7a" + ], + "index": "pypi", + "markers": "python_version >= '3.8'", + "version": "==1.35.69" + }, + "botocore": { + "hashes": [ + "sha256:cad8d9305f873404eee4b197d84e60a40975d43cbe1ab63abe893420ddfe6e3c", + "sha256:f9f23dd76fb247d9b0e8d411d2995e6f847fc451c026f1e58e300f815b0b36eb" + ], + "markers": "python_version >= '3.8'", + "version": "==1.35.69" + }, + "jmespath": { + "hashes": [ + "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980", + "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe" + ], + "markers": "python_version >= '3.7'", + "version": "==1.0.1" + }, + "pymysql": { + "hashes": [ + "sha256:4de15da4c61dc132f4fb9ab763063e693d521a80fd0e87943b9a453dd4c19d6c", + "sha256:e127611aaf2b417403c60bf4dc570124aeb4a57f5f37b8e95ae399a42f904cd0" + ], + "index": "pypi", + "markers": "python_version >= '3.7'", + "version": "==1.1.1" + }, + "python-dateutil": { + "hashes": [ + "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", + "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", + "version": "==2.9.0.post0" + }, + "s3transfer": { + "hashes": [ + "sha256:244a76a24355363a68164241438de1b72f8781664920260c48465896b712a41e", + "sha256:29edc09801743c21eb5ecbc617a152df41d3c287f67b615f73e5f750583666a7" + ], + "markers": "python_version >= '3.8'", + "version": "==0.10.4" + }, + "six": { + "hashes": [ + "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", + "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", + "version": "==1.16.0" + }, + "urllib3": { + "hashes": [ + "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac", + "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9" + ], + "markers": "python_version >= '3.10'", + "version": "==2.2.3" + } + }, + "develop": {} +} diff --git a/ecs/dataimport/requirements.txt b/ecs/dataimport/requirements.txt deleted file mode 100644 index 7253f919..00000000 --- a/ecs/dataimport/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -boto3 -PyMySQL \ No newline at end of file