SyntaxError: код не-UTF-8, начинающийся с '\x80' в файле /venv/bin/python3 Distroless

Я пытаюсь использовать приложение python flask из док-контейнера, которое я намереваюсь развернуть в облачной службе.

У меня есть код на питоне:

app.py

      # -*- coding: utf-8 -*-
from flask import Flask, request, jsonify
from simple_salesforce import Salesforce, SalesforceLogin
from simple_salesforce import SFType
import json
import os


app = Flask(__name__)


@app.route('/<sfobject>', methods=['POST'])
def update_record(sfobject):
    request_json = json.loads(request.data)
       
    # Assign Variables to Pass into Salesforce Login
    sf_username = "x"
    sf_password = "y"
    sf_token = "z"
    
    try:

        # call salesforce Login
        # return Session ID and Instance
        session_id, instance = SalesforceLogin(
            username = sf_username,
            password = sf_password,
            security_token = sf_token,
            domain = "test")
        
        print(session_id)
        
        print(instance)

        record = SFType(sfobject,session_id,instance)

        #send payload to Salesforce API
        record.create(request_json)

        #parse response from Salesforce API
        record_submit = record.describe()

        print("main - record_submit: {}".format(record_submit))
        
    except Exception as error:
        print(f"Error: {repr(error)}")
        
    return {
        "statusCode" : 200,
        "body" : "success"
    }
    
    

# debug must be False for prod
if __name__ == '__main__':
    app.run(debug=True,host='0.0.0.0',port=int(os.environ.get('PORT', 8080)))

Докерфайл:

      # To change permissions of the scripts this image was used.
FROM busybox:1.35.0-uclibc as busybox

ENV APP_HOME=/app_config

COPY *.py $APP_HOME/

RUN chmod +x $APP_HOME/*.py

# Build a virtualenv using the appropriate Debian release
# * Install python3-venv for the built-in Python3 venv module (not installed by default)
# * Install gcc libpython3-dev to compile C Python modules
# * In the virtualenv: Update pip setuputils and wheel to support building new packages
FROM debian:11-slim AS build
RUN apt-get update && \
    apt-get install --no-install-suggests --no-install-recommends --yes python3-venv gcc libpython3-dev && \
    python3 -m venv /venv && \
    /venv/bin/pip install --upgrade pip setuptools wheel

# Build the virtualenv as a separate step: Only re-execute this step when requirements.txt changes
FROM build AS build-venv
COPY requirements.txt /requirements.txt
RUN /venv/bin/pip install --disable-pip-version-check -r /requirements.txt

# Copy the virtualenv into a distroless image
FROM gcr.io/distroless/python3-debian11

COPY --from=build-venv /venv /venv

COPY --from=busybox:1.35.0-uclibc /bin/sh /bin/sh

ENV APP_HOME=/app_config

COPY --from=busybox $APP_HOME/*.py $APP_HOME/

# RUN pip3 install -r requirements.txt

CMD [ "/venv/bin/python3", "/app_config/app.py" ]

Но когда я запускаю образ докера, у меня возникает ошибка:

SyntaxError: код не-UTF-8, начинающийся с '\x80' в файле /venv/bin/python3 в строке 2, но кодировка не объявлена; подробности см. на http://python.org/dev/peps/pep-0263/ .

Я ссылался на несколько сообщений, ничего не работает.

0 ответов

Другие вопросы по тегам