I am trying to deploy a Django app in a container to Cloud Run. I have it running well locally using Docker. However, when I deploy it to Cloud Run, I get infinite 301 redirects. The Cloud Run logs do not seem to show any meaningful info about why that happens. Below is my Dockerfile that I use for deployment:
# Pull base image
FROM python:3.9.0
# Set environment variables
ENV PIP_DISABLE_PIP_VERSION_CHECK 1
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# Set work directory
WORKDIR /code
# Install dependencies
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt && \
adduser --disabled-password --no-create-home django-user
# Copy project
COPY . /code
USER django-user
# Run server
CMD exec gunicorn -b :$PORT my_app.wsgi:application
I store all the sensitive info in Secrets Manager, and the connection to it seems to work fine (I know because I had an issue with it and now I fixed that).
Could you suggest what I might have done wrong, or where can I look for hints as to why the redirects happen? Thank you!
EDIT:
Here are the settings for ALLOWED_HOSTS
and ROOT_URLCONF
CLOUDRUN_SERVICE_URL = env("CLOUDRUN_SERVICE_URL", default=None)
if CLOUDRUN_SERVICE_URL:
ALLOWED_HOSTS = [urlparse(CLOUDRUN_SERVICE_URL).netloc]
CSRF_TRUSTED_ORIGINS = [CLOUDRUN_SERVICE_URL]
# SECURE_SSL_REDIRECT = True
SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
else:
ALLOWED_HOSTS = ["*"]
ROOT_URLCONF = 'my_app.urls'
EDIT 2:
Here are the Cloud Run logs:
[
{
"insertId": "63ea0f3a0009301fc1588a44",
"httpRequest": {
"requestMethod": "GET",
"requestUrl": "https://stokkio-test-bizhlx6wsq-ez.a.run.app/",
"requestSize": "719",
"status": 301,
"responseSize": "821",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/110.0",
"remoteIp": "80.208.2.138",
"serverIp": "216.239.32.53",
"latency": "0.016940322s",
"protocol": "HTTP/1.1"
},
"resource": {
"type": "cloud_run_revision",
"labels": {
"location": "europe-west4",
"configuration_name": "stokkio-test",
"project_id": "stokkio",
"revision_name": "stokkio-test-00007-nah",
"service_name": "stokkio-test"
}
},
"timestamp": "2023-02-13T10:21:46.602143Z",
"severity": "INFO",
"labels": {
"instanceId": "00f8b6bdb8eceaf16c38c4476e4bc4b018e5c36e674ddb382e5d1a5654e23693e60d6682d498b0cde1680fb9104257c4ef191c90bb395e9dd78bdef2870378149e"
},
"logName": "projects/stokkio/logs/run.googleapis.com%2Frequests",
"trace": "projects/stokkio/traces/64be6aa2f943773a97b8dca48c08183f",
"receiveTimestamp": "2023-02-13T10:21:46.738718368Z",
"spanId": "12503801728925259527"
},
{
"insertId": "63ea0f3a000a1ab20ae2502b",
"httpRequest": {
"requestMethod": "GET",
"requestUrl": "https://stokkio-test-bizhlx6wsq-ez.a.run.app/",
"requestSize": "719",
"status": 301,
"responseSize": "821",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/110.0",
"remoteIp": "80.208.2.138",
"serverIp": "216.239.32.53",
"latency": "0.015862415s",
"protocol": "HTTP/1.1"
},
"resource": {
"type": "cloud_run_revision",
"labels": {
"project_id": "stokkio",
"location": "europe-west4",
"service_name": "stokkio-test",
"revision_name": "stokkio-test-00007-nah",
"configuration_name": "stokkio-test"
}
},
"timestamp": "2023-02-13T10:21:46.662194Z",
"severity": "INFO",
"labels": {
"instanceId": "00f8b6bdb8eceaf16c38c4476e4bc4b018e5c36e674ddb382e5d1a5654e23693e60d6682d498b0cde1680fb9104257c4ef191c90bb395e9dd78bdef2870378149e"
},
"logName": "projects/stokkio/logs/run.googleapis.com%2Frequests",
"trace": "projects/stokkio/traces/b9918384299b4f2d5abaf95d3b191b52",
"receiveTimestamp": "2023-02-13T10:21:46.738718368Z",
"spanId": "4996242098785213790"
},
{
"insertId": "63ea0f3a000aca32edc19ff5",
"httpRequest": {
"requestMethod": "GET",
"requestUrl": "https://stokkio-test-bizhlx6wsq-ez.a.run.app/",
"requestSize": "719",
"status": 301,
"responseSize": "821",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/110.0",
"remoteIp": "80.208.2.138",
"serverIp": "216.239.32.53",
"latency": "0.015062643s",
"protocol": "HTTP/1.1"
},
"resource": {
"type": "cloud_run_revision",
"labels": {
"project_id": "stokkio",
"revision_name": "stokkio-test-00007-nah",
"configuration_name": "stokkio-test",
"service_name": "stokkio-test",
"location": "europe-west4"
}
},
"timestamp": "2023-02-13T10:21:46.707122Z",
"severity": "INFO",
"labels": {
"instanceId": "00f8b6bdb8eceaf16c38c4476e4bc4b018e5c36e674ddb382e5d1a5654e23693e60d6682d498b0cde1680fb9104257c4ef191c90bb395e9dd78bdef2870378149e"
},
"logName": "projects/stokkio/logs/run.googleapis.com%2Frequests",
"trace": "projects/stokkio/traces/902a25de57f137b27daadd636246369a",
"receiveTimestamp": "2023-02-13T10:21:46.738718368Z",
"spanId": "12127042401513465971"
},
{
"insertId": "63ea0f3a000b8d87125ec41c",
"httpRequest": {
"requestMethod": "GET",
"requestUrl": "https://stokkio-test-bizhlx6wsq-ez.a.run.app/",
"requestSize": "720",
"status": 301,
"responseSize": "821",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/110.0",
"remoteIp": "80.208.2.138",
"serverIp": "216.239.32.53",
"latency": "0.016173479s",
"protocol": "HTTP/1.1"
},
"resource": {
"type": "cloud_run_revision",
"labels": {
"revision_name": "stokkio-test-00007-nah",
"service_name": "stokkio-test",
"location": "europe-west4",
"configuration_name": "stokkio-test",
"project_id": "stokkio"
}
},
"timestamp": "2023-02-13T10:21:46.757127Z",
"severity": "INFO",
"labels": {
"instanceId": "00f8b6bdb8eceaf16c38c4476e4bc4b018e5c36e674ddb382e5d1a5654e23693e60d6682d498b0cde1680fb9104257c4ef191c90bb395e9dd78bdef2870378149e"
},
"logName": "projects/stokkio/logs/run.googleapis.com%2Frequests",
"trace": "projects/stokkio/traces/02532852f1783bc16f2b66b7941c300e",
"receiveTimestamp": "2023-02-13T10:21:47.071599643Z",
"spanId": "5082316244221461602"
},
{
"insertId": "63ea0f3a000ce2f9bb9dbffa",
"httpRequest": {
"requestMethod": "GET",
"requestUrl": "https://stokkio-test-bizhlx6wsq-ez.a.run.app/",
"requestSize": "719",
"status": 301,
"responseSize": "821",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/110.0",
"remoteIp": "80.208.2.138",
"serverIp": "216.239.32.53",
"latency": "0.017867221s",
"protocol": "HTTP/1.1"
},
"resource": {
"type": "cloud_run_revision",
"labels": {
"service_name": "stokkio-test",
"revision_name": "stokkio-test-00007-nah",
"configuration_name": "stokkio-test",
"location": "europe-west4",
"project_id": "stokkio"
}
},
"timestamp": "2023-02-13T10:21:46.844537Z",
"severity": "INFO",
"labels": {
"instanceId": "00f8b6bdb8eceaf16c38c4476e4bc4b018e5c36e674ddb382e5d1a5654e23693e60d6682d498b0cde1680fb9104257c4ef191c90bb395e9dd78bdef2870378149e"
},
"logName": "projects/stokkio/logs/run.googleapis.com%2Frequests",
"trace": "projects/stokkio/traces/933a163da353fbb6b81f2f4bb37cff36",
"receiveTimestamp": "2023-02-13T10:21:47.071599643Z",
"spanId": "5044082674168555502"
},
{
"insertId": "63ea0f3a000d9928e046cc4c",
"httpRequest": {
"requestMethod": "GET",
"requestUrl": "https://stokkio-test-bizhlx6wsq-ez.a.run.app/",
"requestSize": "720",
"status": 301,
"responseSize": "821",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/110.0",
"remoteIp": "80.208.2.138",
"serverIp": "216.239.32.53",
"latency": "0.015601548s",
"protocol": "HTTP/1.1"
},
"resource": {
"type": "cloud_run_revision",
"labels": {
"revision_name": "stokkio-test-00007-nah",
"location": "europe-west4",
"project_id": "stokkio",
"service_name": "stokkio-test",
"configuration_name": "stokkio-test"
}
},
"timestamp": "2023-02-13T10:21:46.891176Z",
"severity": "INFO",
"labels": {
"instanceId": "00f8b6bdb8eceaf16c38c4476e4bc4b018e5c36e674ddb382e5d1a5654e23693e60d6682d498b0cde1680fb9104257c4ef191c90bb395e9dd78bdef2870378149e"
},
"logName": "projects/stokkio/logs/run.googleapis.com%2Frequests",
"trace": "projects/stokkio/traces/37376b9045f8fc7b148437d39ba49bfe",
"receiveTimestamp": "2023-02-13T10:21:47.071599643Z",
"spanId": "3090697929386714415"
},
{
"insertId": "63ea0f3a000e47cbe8acf1d4",
"httpRequest": {
"requestMethod": "GET",
"requestUrl": "https://stokkio-test-bizhlx6wsq-ez.a.run.app/",
"requestSize": "720",
"status": 301,
"responseSize": "821",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/110.0",
"remoteIp": "80.208.2.138",
"serverIp": "216.239.32.53",
"latency": "0.015684058s",
"protocol": "HTTP/1.1"
},
"resource": {
"type": "cloud_run_revision",
"labels": {
"location": "europe-west4",
"configuration_name": "stokkio-test",
"revision_name": "stokkio-test-00007-nah",
"service_name": "stokkio-test",
"project_id": "stokkio"
}
},
"timestamp": "2023-02-13T10:21:46.935883Z",
"severity": "INFO",
"labels": {
"instanceId": "00f8b6bdb8eceaf16c38c4476e4bc4b018e5c36e674ddb382e5d1a5654e23693e60d6682d498b0cde1680fb9104257c4ef191c90bb395e9dd78bdef2870378149e"
},
"logName": "projects/stokkio/logs/run.googleapis.com%2Frequests",
"trace": "projects/stokkio/traces/1aef8aebf520c8b999ff475465ae402d",
"receiveTimestamp": "2023-02-13T10:21:47.071599643Z",
"spanId": "5530487600267712102"
},
{
"insertId": "63ea0f3a000f124e3e217c45",
"httpRequest": {
"requestMethod": "GET",
"requestUrl": "https://stokkio-test-bizhlx6wsq-ez.a.run.app/",
"requestSize": "719",
"status": 301,
"responseSize": "821",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/110.0",
"remoteIp": "80.208.2.138",
"serverIp": "216.239.32.53",
"latency": "0.017848766s",
"protocol": "HTTP/1.1"
},
"resource": {
"type": "cloud_run_revision",
"labels": {
"location": "europe-west4",
"project_id": "stokkio",
"configuration_name": "stokkio-test",
"revision_name": "stokkio-test-00007-nah",
"service_name": "stokkio-test"
}
},
"timestamp": "2023-02-13T10:21:46.987726Z",
"severity": "INFO",
"labels": {
"instanceId": "00f8b6bdb8eceaf16c38c4476e4bc4b018e5c36e674ddb382e5d1a5654e23693e60d6682d498b0cde1680fb9104257c4ef191c90bb395e9dd78bdef2870378149e"
},
"logName": "projects/stokkio/logs/run.googleapis.com%2Frequests",
"trace": "projects/stokkio/traces/fa978438d859dd302167f39f941934ec",
"receiveTimestamp": "2023-02-13T10:21:47.071599643Z",
"spanId": "1186815225754169043"
},
{
"insertId": "63ea0f3b00008ee9db5031dc",
"httpRequest": {
"requestMethod": "GET",
"requestUrl": "https://stokkio-test-bizhlx6wsq-ez.a.run.app/",
"requestSize": "719",
"status": 301,
"responseSize": "821",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/110.0",
"remoteIp": "80.208.2.138",
"serverIp": "216.239.32.53",
"latency": "0.015688891s",
"protocol": "HTTP/1.1"
},
"resource": {
"type": "cloud_run_revision",
"labels": {
"location": "europe-west4",
"service_name": "stokkio-test",
"configuration_name": "stokkio-test",
"project_id": "stokkio",
"revision_name": "stokkio-test-00007-nah"
}
},
"timestamp": "2023-02-13T10:21:47.036585Z",
"severity": "INFO",
"labels": {
"instanceId": "00f8b6bdb8eceaf16c38c4476e4bc4b018e5c36e674ddb382e5d1a5654e23693e60d6682d498b0cde1680fb9104257c4ef191c90bb395e9dd78bdef2870378149e"
},
"logName": "projects/stokkio/logs/run.googleapis.com%2Frequests",
"trace": "projects/stokkio/traces/24aedf0be321b5b72768e877459d8ceb",
"receiveTimestamp": "2023-02-13T10:21:47.071599643Z",
"spanId": "10950882171467594641"
},
{
"insertId": "63ea0f3b00015a4c9feb5375",
"httpRequest": {
"requestMethod": "GET",
"requestUrl": "https://stokkio-test-bizhlx6wsq-ez.a.run.app/",
"requestSize": "718",
"status": 301,
"responseSize": "821",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/110.0",
"remoteIp": "80.208.2.138",
"serverIp": "216.239.32.53",
"latency": "0.017323986s",
"protocol": "HTTP/1.1"
},
"resource": {
"type": "cloud_run_revision",
"labels": {
"location": "europe-west4",
"revision_name": "stokkio-test-00007-nah",
"configuration_name": "stokkio-test",
"service_name": "stokkio-test",
"project_id": "stokkio"
}
},
"timestamp": "2023-02-13T10:21:47.088652Z",
"severity": "INFO",
"labels": {
"instanceId": "00f8b6bdb8eceaf16c38c4476e4bc4b018e5c36e674ddb382e5d1a5654e23693e60d6682d498b0cde1680fb9104257c4ef191c90bb395e9dd78bdef2870378149e"
},
"logName": "projects/stokkio/logs/run.googleapis.com%2Frequests",
"trace": "projects/stokkio/traces/bc99cdb404d30d79eeca345aa9e1e08f",
"receiveTimestamp": "2023-02-13T10:21:47.404890035Z",
"spanId": "9075675780908094052"
},
{
"insertId": "63ea0f3b00020e2a8050452d",
"httpRequest": {
"requestMethod": "GET",
"requestUrl": "https://stokkio-test-bizhlx6wsq-ez.a.run.app/",
"requestSize": "720",
"status": 301,
"responseSize": "821",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/110.0",
"remoteIp": "80.208.2.138",
"serverIp": "216.239.32.53",
"latency": "0.015765805s",
"protocol": "HTTP/1.1"
},
"resource": {
"type": "cloud_run_revision",
"labels": {
"project_id": "stokkio",
"revision_name": "stokkio-test-00007-nah",
"configuration_name": "stokkio-test",
"service_name": "stokkio-test",
"location": "europe-west4"
}
},
"timestamp": "2023-02-13T10:21:47.134698Z",
"severity": "INFO",
"labels": {
"instanceId": "00f8b6bdb8eceaf16c38c4476e4bc4b018e5c36e674ddb382e5d1a5654e23693e60d6682d498b0cde1680fb9104257c4ef191c90bb395e9dd78bdef2870378149e"
},
"logName": "projects/stokkio/logs/run.googleapis.com%2Frequests",
"trace": "projects/stokkio/traces/2ff445dd04e8f2d88a65f45af2a15e00",
"receiveTimestamp": "2023-02-13T10:21:47.404890035Z",
"spanId": "93159101454760213"
},
{
"insertId": "63ea0f3b0002e5a790b8b27f",
"httpRequest": {
"requestMethod": "GET",
"requestUrl": "https://stokkio-test-bizhlx6wsq-ez.a.run.app/",
"requestSize": "718",
"status": 301,
"responseSize": "821",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/110.0",
"remoteIp": "80.208.2.138",
"serverIp": "216.239.32.53",
"latency": "0.016101403s",
"protocol": "HTTP/1.1"
},
"resource": {
"type": "cloud_run_revision",
"labels": {
"revision_name": "stokkio-test-00007-nah",
"configuration_name": "stokkio-test",
"service_name": "stokkio-test",
"location": "europe-west4",
"project_id": "stokkio"
}
},
"timestamp": "2023-02-13T10:21:47.189863Z",
"severity": "INFO",
"labels": {
"instanceId": "00f8b6bdb8eceaf16c38c4476e4bc4b018e5c36e674ddb382e5d1a5654e23693e60d6682d498b0cde1680fb9104257c4ef191c90bb395e9dd78bdef2870378149e"
},
"logName": "projects/stokkio/logs/run.googleapis.com%2Frequests",
"trace": "projects/stokkio/traces/33c3a83942c227fd78262d7bbd5e3c0c",
"receiveTimestamp": "2023-02-13T10:21:47.404890035Z",
"spanId": "1509834668974463252"
},
{
"insertId": "63ea0f3b00039c080261c60b",
"httpRequest": {
"requestMethod": "GET",
"requestUrl": "https://stokkio-test-bizhlx6wsq-ez.a.run.app/",
"requestSize": "719",
"status": 301,
"responseSize": "821",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/110.0",
"remoteIp": "80.208.2.138",
"serverIp": "216.239.32.53",
"latency": "0.015538512s",
"protocol": "HTTP/1.1"
},
"resource": {
"type": "cloud_run_revision",
"labels": {
"revision_name": "stokkio-test-00007-nah",
"service_name": "stokkio-test",
"configuration_name": "stokkio-test",
"location": "europe-west4",
"project_id": "stokkio"
}
},
"timestamp": "2023-02-13T10:21:47.236552Z",
"severity": "INFO",
"labels": {
"instanceId": "00f8b6bdb8eceaf16c38c4476e4bc4b018e5c36e674ddb382e5d1a5654e23693e60d6682d498b0cde1680fb9104257c4ef191c90bb395e9dd78bdef2870378149e"
},
"logName": "projects/stokkio/logs/run.googleapis.com%2Frequests",
"trace": "projects/stokkio/traces/34452d901bf9e91f11103df834fa9e40",
"receiveTimestamp": "2023-02-13T10:21:47.404890035Z",
"spanId": "8356040364675355850"
},
{
"insertId": "63ea0f3b0004863bb01e0463",
"httpRequest": {
"requestMethod": "GET",
"requestUrl": "https://stokkio-test-bizhlx6wsq-ez.a.run.app/",
"requestSize": "719",
"status": 301,
"responseSize": "821",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/110.0",
"remoteIp": "80.208.2.138",
"serverIp": "216.239.32.53",
"latency": "0.014853111s",
"protocol": "HTTP/1.1"
},
"resource": {
"type": "cloud_run_revision",
"labels": {
"location": "europe-west4",
"configuration_name": "stokkio-test",
"revision_name": "stokkio-test-00007-nah",
"project_id": "stokkio",
"service_name": "stokkio-test"
}
},
"timestamp": "2023-02-13T10:21:47.296507Z",
"severity": "INFO",
"labels": {
"instanceId": "00f8b6bdb8eceaf16c38c4476e4bc4b018e5c36e674ddb382e5d1a5654e23693e60d6682d498b0cde1680fb9104257c4ef191c90bb395e9dd78bdef2870378149e"
},
"logName": "projects/stokkio/logs/run.googleapis.com%2Frequests",
"trace": "projects/stokkio/traces/140e39f594ea8a6e074bc4435dc5a510",
"receiveTimestamp": "2023-02-13T10:21:47.404890035Z",
"spanId": "12869781596943932295"
},
{
"insertId": "63ea0f3b00054f5971f9d391",
"httpRequest": {
"requestMethod": "GET",
"requestUrl": "https://stokkio-test-bizhlx6wsq-ez.a.run.app/",
"requestSize": "718",
"status": 301,
"responseSize": "821",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/110.0",
"remoteIp": "80.208.2.138",
"serverIp": "216.239.32.53",
"latency": "0.015427982s",
"protocol": "HTTP/1.1"
},
"resource": {
"type": "cloud_run_revision",
"labels": {
"location": "europe-west4",
"service_name": "stokkio-test",
"revision_name": "stokkio-test-00007-nah",
"project_id": "stokkio",
"configuration_name": "stokkio-test"
}
},
"timestamp": "2023-02-13T10:21:47.347993Z",
"severity": "INFO",
"labels": {
"instanceId": "00f8b6bdb8eceaf16c38c4476e4bc4b018e5c36e674ddb382e5d1a5654e23693e60d6682d498b0cde1680fb9104257c4ef191c90bb395e9dd78bdef2870378149e"
},
"logName": "projects/stokkio/logs/run.googleapis.com%2Frequests",
"trace": "projects/stokkio/traces/99472b16d5ee9c8a6ff9e687b43a6ca9",
"receiveTimestamp": "2023-02-13T10:21:47.404890035Z",
"spanId": "11202554865495003658"
}
]
Specify the valid 'ALLOWED_HOSTS' for the app from the Django settings in your case hostname will be cloud Run the service you deployed. Secondly, configure the root URL 'ROOT_URLCONF' for your App.