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

env: Expose port 3306 of mysql container #21545

Merged
merged 1 commit into from
Apr 16, 2020
Merged

Conversation

ocean90
Copy link
Member

@ocean90 ocean90 commented Apr 11, 2020

This only defines the container port to allow docker to choose an ephemeral host port.

Fixes #21544.

Testing Instructions:

  • Start an (existing ) env setup
  • Open docker-compose.yml and verify that
      ports:
        - '3306'
    exists
  • Optional: Run docker-compose port mysql 3306 to get the port number.

This only defines the container port to allow docker to choose an ephemeral host port.
@ocean90 ocean90 added the [Tool] Env /packages/env label Apr 11, 2020
@ocean90 ocean90 self-assigned this Apr 11, 2020
@github-actions
Copy link

Size Change: 0 B

Total Size: 903 kB

ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.02 kB 0 B
build/annotations/index.js 3.62 kB 0 B
build/api-fetch/index.js 4.01 kB 0 B
build/autop/index.js 2.82 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/index.js 6.24 kB 0 B
build/block-directory/style-rtl.css 760 B 0 B
build/block-directory/style.css 760 B 0 B
build/block-editor/index.js 104 kB 0 B
build/block-editor/style-rtl.css 10.2 kB 0 B
build/block-editor/style.css 10.2 kB 0 B
build/block-library/editor-rtl.css 7.22 kB 0 B
build/block-library/editor.css 7.22 kB 0 B
build/block-library/index.js 112 kB 0 B
build/block-library/style-rtl.css 7.15 kB 0 B
build/block-library/style.css 7.16 kB 0 B
build/block-library/theme-rtl.css 683 B 0 B
build/block-library/theme.css 685 B 0 B
build/block-serialization-default-parser/index.js 1.88 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 57.7 kB 0 B
build/components/index.js 198 kB 0 B
build/components/style-rtl.css 16.6 kB 0 B
build/components/style.css 16.5 kB 0 B
build/compose/index.js 6.66 kB 0 B
build/core-data/index.js 11.1 kB 0 B
build/data-controls/index.js 1.25 kB 0 B
build/data/index.js 8.43 kB 0 B
build/date/index.js 5.47 kB 0 B
build/deprecated/index.js 772 B 0 B
build/dom-ready/index.js 569 B 0 B
build/dom/index.js 3.1 kB 0 B
build/edit-navigation/index.js 3.1 kB 0 B
build/edit-navigation/style-rtl.css 279 B 0 B
build/edit-navigation/style.css 280 B 0 B
build/edit-post/index.js 93.5 kB 0 B
build/edit-post/style-rtl.css 12.3 kB 0 B
build/edit-post/style.css 12.3 kB 0 B
build/edit-site/index.js 10.4 kB 0 B
build/edit-site/style-rtl.css 5.02 kB 0 B
build/edit-site/style.css 5.02 kB 0 B
build/edit-widgets/index.js 7.53 kB 0 B
build/edit-widgets/style-rtl.css 3.74 kB 0 B
build/edit-widgets/style.css 3.73 kB 0 B
build/editor/editor-styles-rtl.css 428 B 0 B
build/editor/editor-styles.css 431 B 0 B
build/editor/index.js 43.6 kB 0 B
build/editor/style-rtl.css 3.49 kB 0 B
build/editor/style.css 3.49 kB 0 B
build/element/index.js 4.64 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.29 kB 0 B
build/format-library/style-rtl.css 502 B 0 B
build/format-library/style.css 502 B 0 B
build/hooks/index.js 2.13 kB 0 B
build/html-entities/index.js 622 B 0 B
build/i18n/index.js 3.56 kB 0 B
build/is-shallow-equal/index.js 711 B 0 B
build/keyboard-shortcuts/index.js 2.51 kB 0 B
build/keycodes/index.js 1.91 kB 0 B
build/list-reusable-blocks/index.js 3.12 kB 0 B
build/list-reusable-blocks/style-rtl.css 226 B 0 B
build/list-reusable-blocks/style.css 226 B 0 B
build/media-utils/index.js 5.28 kB 0 B
build/notices/index.js 1.79 kB 0 B
build/nux/index.js 3.4 kB 0 B
build/nux/style-rtl.css 616 B 0 B
build/nux/style.css 613 B 0 B
build/plugins/index.js 2.67 kB 0 B
build/primitives/index.js 1.49 kB 0 B
build/priority-queue/index.js 789 B 0 B
build/redux-routine/index.js 2.84 kB 0 B
build/rich-text/index.js 14.8 kB 0 B
build/server-side-render/index.js 2.67 kB 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.28 kB 0 B
build/url/index.js 4.01 kB 0 B
build/viewport/index.js 1.84 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

@draganescu
Copy link
Contributor

Howdy @ocean90 thanks for this PR! I wonder could we make it so that the port on the host can be custom like the one for the http server?

Folks have all kinds of things running on host ports and this ability would be nice.

Also what is the best way to test this PR works if you have wp-env installed globally?

@noahtallen
Copy link
Member

what is the best way to test this PR works if you have wp-env installed globally

You can run wp-env directly from gutenberg if this branch is checked out. (there should be no need to build the code if your node version is up to date)

../path/to/gutenberg/packages/env/bin/wp-env $command

@noisysocks
Copy link
Member

Howdy @ocean90 thanks for this PR! I wonder could we make it so that the port on the host can be custom like the one for the http server?

As implemented this PR makes Docker expose the private port (3306) as an ephemeral port chosen at random by Docker when wp-env start is run. Running docker-compose -f ~/.wp-env/{hash}/docker-compose.yml port mysql 3306 lets you see what port Docker chose.

I think this is a good compromise as it allows very advanced use-cases without adding any extra configuration or complexity to wp-env, which is designed to be a zero configuration tool.

@ocean90: Out of curiosity, what is your use-case for wanting this?

@ocean90
Copy link
Member Author

ocean90 commented Apr 15, 2020

Thanks for the feedback! As mentioned before it's not that common to connect to the database directly but if it's necessary it should be still possible. So that's why there's no config for that.

Use cases are for example validating the data in the database, using the database for PHPUnit plugin tests or just quickly importing an existing database dump.

@draganescu
Copy link
Contributor

Another usecase is for when you want to inspect the DB using a client such as SequelPro @noisysocks

However I find that docker-compose -f ~/.wp-env/{hash}/docker-compose.yml port mysql 3306 is such an arcane command that it is close to useless :) I would still rather ssh into the container and use the mysql client there.

@noisysocks
Copy link
Member

Maybe wp-env could display the port after it successfully starts?

e.g.

$ wp-env start
✔️ Done!
WordPress development site available at http://localhost:8080.
WordPress E2E testing site available at http://localhost:8081.
MySQL is listening on port 90238.

At any rate, I see no reason we can't merge this PR as is for now.

@noisysocks noisysocks merged commit 8547b5e into master Apr 16, 2020
@noisysocks noisysocks deleted the feature/env-mysql-port branch April 16, 2020 00:42
@github-actions github-actions bot added this to the Gutenberg 8.0 milestone Apr 16, 2020
@jeyip
Copy link
Contributor

jeyip commented Jan 23, 2021

Follow up for @noisysocks's comment about logs

#28441

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Tool] Env /packages/env
Projects
None yet
Development

Successfully merging this pull request may close these issues.

env: Expose port 3306 of MySQL container
5 participants