Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix default network is not initialize when get gateway ip #349

Merged
merged 4 commits into from Aug 24, 2021

Conversation

mrproliu
Copy link

When I try to use docker in docker through the share UNIX socket on GitHub Action, the IP address in the Host Port wait strategy is incorrect.

I found when we trying to get the target host, the default network may not initialize:

nw, err := p.GetNetwork(ctx, NetworkRequest{Name: p.defaultNetwork})

docker.go Outdated Show resolved Hide resolved
@mdelapenya
Copy link
Collaborator

@mrproliu thanks for this contribution! I'd be great if you can share with us logs, screenshots, useful links where we can check the real problem, or even better to contribute a test reproducing the issue (although I know that replicating the DinD + GH action scenario could be difficult).

wdyt?

@mrproliu
Copy link
Author

mrproliu commented Aug 19, 2021

@mrproliu thanks for this contribution! I'd be great if you can share with us logs, screenshots, useful links where we can check the real problem, or even better to contribute a test reproducing the issue (although I know that replicating the DinD + GH action scenario could be difficult).

wdyt?

We are already trying to run in GitHub Action through DinD.
Here is the CI run link:https://github.com/apache/skywalking-satellite/runs/3358752416?check_suite_focus=true

Here is how we use GitHub Action to implement DinD by sharing socks.
https://github.com/apache/skywalking-infra-e2e/blob/main/action.yaml#L32-L35

When we use docker-compose, we need to bind the ports to the waiting policy to ensure that these ports can be accessed.
https://github.com/apache/skywalking-infra-e2e/blob/de5be41596f27867a15ab75dbad97ea538d863b8/internal/components/setup/compose.go#L144-L167

I hope this content is enough, If you think what else I am missing, please feel free to let me know :)

@wu-sheng
Copy link

Just say hi to @bsideup :P We are deeply integrating testcontainer for our e2e test infra project, https://github.com/apache/skywalking-infra-e2e

We will incubate the project in the SkyWalking and ASF. Who ever uses the skywalking-infra-e2e, they have 50% chance(or more) are going to use test container too.

@codecov
Copy link

codecov bot commented Aug 19, 2021

Codecov Report

Merging #349 (46cf72a) into master (5963181) will increase coverage by 0.59%.
The diff coverage is 60.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #349      +/-   ##
==========================================
+ Coverage   61.32%   61.92%   +0.59%     
==========================================
  Files          15       15              
  Lines         993      998       +5     
==========================================
+ Hits          609      618       +9     
+ Misses        292      285       -7     
- Partials       92       95       +3     
Impacted Files Coverage Δ
docker.go 64.80% <60.00%> (+1.24%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5963181...46cf72a. Read the comment docs.

@@ -1506,6 +1506,18 @@ func TestContainerWithReaperNetwork(t *testing.T) {
assert.NotNil(t, cnt.NetworkSettings.Networks[networks[1]])
}

func TestGetGatewayIP(t *testing.T) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for contributing a unit test! This is super!

I'd like to ask about the assertions part: according to the PR description:

the IP address in the Host Port wait strategy is incorrect

Is it enough to verify that no errors are raised, or do we need to verify any other thing?

BTW It's not a blocker on the review, I just want to make sure we are covering the new behaviour with the tests.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it enough to verify that no errors are raised, or do we need to verify any other thing?

We are not sure about the specific value of the IP address in the GHA test or host test, so we can only verify that the IP address is not empty and there is no error. Do you think we also need to create a container with an export port to verify that this address is available?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, if reproducing GHA behaviour is complex I'd keep it like it is now adding the verification of the IP address is not empty. If you can give it a try with a real container, best. But as I said, let's not block this unless needed.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have added the not empty check :)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

offtopic: it seems the @dalekliuhan commiter user does not have associated an email on github

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the CI passes, this LGTM :)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

offtopic: it seems the @dalekliuhan commiter user does not have associated an email on github

email address on GitHub? I have set it. Do I miss anything? :)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Look at the commit in the list: it does not have an image associated to it. And when you click on the commit itself, the user is not clickable

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, sorry about that, I submit by a different user, not the GitHub user so it cannot be clickable.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mdelapenya Does this repo support squash merge? If so, GitHub will take care of this issue automatically.

Copy link
Collaborator

@mdelapenya mdelapenya left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Thanks for helping us out in the review process :)

@gianarb gianarb merged commit 31fb76b into testcontainers:master Aug 24, 2021
@gianarb
Copy link
Collaborator

gianarb commented Aug 24, 2021

Thanks a lot!

@mrproliu mrproliu deleted the fix-gateway-ip-wrong branch August 25, 2021 04:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants