[
https://issues.apache.org/jira/browse/AIRFLOW-5022?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16891039#comment-16891039
]
ASF GitHub Bot commented on AIRFLOW-5022:
-----------------------------------------
iantruslove commented on pull request #5644: [AIRFLOW-5022] Fixes DockerHook
for registries with port numbers
URL: https://github.com/apache/airflow/pull/5644
Make sure you have checked _all_ steps below.
### Jira
- [x] My PR addresses the following [Airflow
Jira](https://issues.apache.org/jira/browse/AIRFLOW/) issues and references
them in the PR title. For example, "\[AIRFLOW-XXX\] My Airflow PR"
- https://issues.apache.org/jira/browse/AIRFLOW-5022
### Description
- [x] Here are some details about my PR:
- This fixes a bug where `DockerOperator`s failed authentication when
retrieving the image when configured to use a private registry whose URL has a
non-standard port number. The root problem was that `DockerHook` ignored the
port number of its `conn_id` connection.
### Tests
- [x] My PR adds the following unit tests __OR__ does not need testing for
this extremely good reason:
- A small adjustment was made to test_docker_hook.py to cover the fix.
### Commits
- [x] My commits all reference Jira issues in their subject lines, and I
have squashed multiple commits if they address the same issue. In addition, my
commits follow the guidelines from "[How to write a good git commit
message](http://chris.beams.io/posts/git-commit/)":
1. Subject is separated from body by a blank line
1. Subject is limited to 50 characters (not including Jira issue reference)
1. Subject does not end with a period
1. Subject uses the imperative mood ("add", not "adding")
1. Body wraps at 72 characters
1. Body explains "what" and "why", not "how"
### Documentation
- [x] In case of new functionality, my PR adds documentation that describes
how to use it.
- No new functionality in this PR
### Code Quality
- [x] Passes `flake8`
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> DockerHook ignores connection port
> ----------------------------------
>
> Key: AIRFLOW-5022
> URL: https://issues.apache.org/jira/browse/AIRFLOW-5022
> Project: Apache Airflow
> Issue Type: Bug
> Components: hooks, operators
> Affects Versions: 1.10.3
> Reporter: Ian Truslove
> Priority: Major
>
> I have a DAG with a DockerOperator whose Docker image is hosted in a private
> registry. Passing a connection with creds to access the registry doesn't work
> - I get access errors like this:
> {{[2019-07-22 18:29:36,734] {{__init__.py:1580 ERROR - 500 Server Error:
> Internal Server Error ("Get
> https://<my.internal.url>:2345/v2/foo/bar/manifests/dd92a47df2f3d2c82775552b765013d3c60a2f34}}\{{:
> denied: access forbidden") }}}}
> and the image is not retrieved.
> I am quite sure I am passing the correct credentials.
> Digging in a bit, I saw that docker_hook doesn't use the connection's _port_
> property. I definitely do have my registry exposed at a non-standard port
> number.
> I hacked a fix directly in to my Airflow, and this does solve the problem.
> I replaced
> {{self.__registry = conn.host}}
> on line 57 of docker_hook.py with
> {{self.__registry = conn.host if conn.port is None else
> f"\{conn.host}:\{conn.port}"}}
>
>
>
>
>
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)