-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Behaviour change between 9.5.20 and 9.5.21? #681
Comments
Based on 42ce743 it seems like it's intentional, but I find it odd to change something like that on a minor release |
I just observed the same issue when bumping |
See also #658, the PR that seems to have introduced this |
We were convinced to make it more secure by default and were aware that this would break some users. Apologies for breaking changes. 🙇♂️ We felt that the increased security out-weighed the breakage. See #658 and #580. If you know that you want to be insecure (i.e. any one can connect without a password from anywhere), then We really recommend setting a password and it was really a bad decision by me in the beginning to continue to allow running the database without a password (#31 (comment) & #36) |
I wish a breaking change was not pushed out on a Friday. This broke our CI/CD pipeline, which I had to fix on a Saturday. |
Fails with: db_1 | Error: Database is uninitialized and superuser password is not specified. db_1 | You must specify POSTGRES_PASSWORD for the superuser. Use db_1 | "-e POSTGRES_PASSWORD=password" to set it in "docker run". db_1 | db_1 | You may also use POSTGRES_HOST_AUTH_METHOD=trust to allow all connections db_1 | without a password. This is *not* recommended. See PostgreSQL db_1 | documentation about "trust": db_1 | https://www.postgresql.org/docs/current/auth-trust.html Appears to be related to docker-library/postgres#681
Where in a CI/CD pipeline does one place those lines |
As always emotions fly high when a breaking change is introduced, causing work for others ;) I appreciate the effort that you put into maintaining this image! Maybe one can put the fix to add "POSTGRES_HOST_AUTH_METHOD=trust" somewhere more prominent. I get it that its part of the docker output when you start the image, yet sadly not if you start it with "-d". Then you are just wondering why the next docker command complains that the database is not up ;) |
@CloudArchipelago: It depends on what pipeline you are using. The two that I'm familiar with is GitHub and BitBucket:
(Of course, these articles and examples will need to be updated, since they no longer work as shown.) I don't understand exactly how these pipelines actually configure and start the Postgres service in docker. So I don't know where the And to be honest, I don't fully understand exactly what |
Was or is there consideration to switch to something like semantic versioning? If that was the case then this change, given it's intentional and a breaking changes, would cause a major revision change and everyone could deal with it accordingly. If such a change comes through not as a major, not even as a minor but merely as a patch release (z in x.y.z), then it is highly surprising and that is what trips up processes. Just putting it out there for consideration. |
Tried @bxparks proposed workaround for our CircleCI build (we use Github) and it worked. Simply add
|
We were just burnt by this change and would give a big +1 to adopting semver to help mitigate this in the future. However, I'm not posting just to pile on about semver, I have one other thing I'd like to point out. When our CI pipelines starting running with this newer container image (without In future, if a change is made where the database effectively doesn't work, the container should not just sit there happily doing nothing when it's actually broken. Had the As a slight aside, is there an official we can monitor to know about future significant or breaking changes to this container in future? |
Same here, broken our CI and local development |
It now requires password, otherwise it fails to start. See docker-library/postgres#681
It now requires password, otherwise it fails to start. See docker-library/postgres#681
The `postgres` Docker image now requires a password to be set. This sets a password in the CircleCI build to meet that requirement. See docker-library/postgres#681 for more information.
The `postgres` Docker image now requires a password to be set. This change sets a password in the CircleCI build to meet that requirement. See docker-library/postgres#681 for more information.
Just change the PostgreSQL image to a more specific version, not the latest. E.g. changing to 9.5.18 fixed the problem for me |
The `postgres` Docker image now requires a password to be set. This change sets a password in the CircleCI build to meet that requirement. See docker-library/postgres#681 for more information.
The `postgres` Docker image now requires a password to be set. This change sets a password in the CircleCI build to meet that requirement. See docker-library/postgres#681 for more information.
The `postgres` Docker image now requires a password to be set. This change sets a password in the CircleCI build to meet that requirement. See docker-library/postgres#681 for more information.
The `postgres` Docker image now requires a password to be set. This change sets a password in the CircleCI build to meet that requirement. See docker-library/postgres#681 for more information.
The `postgres` Docker image now requires a password to be set, so this sets a `POSTGRES_PASSWORD` env variable in the `db` container, and a corresponding `DFE_TEACHERS_PAYMENT_SERVICE_DATABASE_PASSWORD` var in the `test` container. More info here docker-library/postgres#681
The postgres docker image does not allow passwordless admin user by default: docker-library/postgres#681 auth_method=trust needs to be set to allow having no password for the postgres user
Fails with: db_1 | Error: Database is uninitialized and superuser password is not specified. db_1 | You must specify POSTGRES_PASSWORD for the superuser. Use db_1 | "-e POSTGRES_PASSWORD=password" to set it in "docker run". db_1 | db_1 | You may also use POSTGRES_HOST_AUTH_METHOD=trust to allow all connections db_1 | without a password. This is *not* recommended. See PostgreSQL db_1 | documentation about "trust": db_1 | https://www.postgresql.org/docs/current/auth-trust.html Appears to be related to docker-library/postgres#681
Behaviour change in docker-library/postgres newest version. See [docker-library/postgres issue(pycontw#681)](docker-library/postgres#681)
The db container is unable to start due to a breaking behavior change in docker-librar/postgres: docker-library/postgres#681 This is the easy fix for localhost development, however documentation should be updated to advise users on how to configure production environments securely.
Earlier this year docker-library/postgres introduced a breaking change: docker-library/postgres#681 adding POSTGRES_HOST_AUTH_METHOD=trust for now to allow demo to start running. In the long run, we should add production messages for how to configure passwords and secrets more properly for security.
See docker-library/postgres#681 for more details.
See docker-library/postgres#681 for more details.
Fails with: db_1 | Error: Database is uninitialized and superuser password is not specified. db_1 | You must specify POSTGRES_PASSWORD for the superuser. Use db_1 | "-e POSTGRES_PASSWORD=password" to set it in "docker run". db_1 | db_1 | You may also use POSTGRES_HOST_AUTH_METHOD=trust to allow all connections db_1 | without a password. This is *not* recommended. See PostgreSQL db_1 | documentation about "trust": db_1 | https://www.postgresql.org/docs/current/auth-trust.html Appears to be related to docker-library/postgres#681
Fails with: db_1 | Error: Database is uninitialized and superuser password is not specified. db_1 | You must specify POSTGRES_PASSWORD for the superuser. Use db_1 | "-e POSTGRES_PASSWORD=password" to set it in "docker run". db_1 | db_1 | You may also use POSTGRES_HOST_AUTH_METHOD=trust to allow all connections db_1 | without a password. This is *not* recommended. See PostgreSQL db_1 | documentation about "trust": db_1 | https://www.postgresql.org/docs/current/auth-trust.html Appears to be related to docker-library/postgres#681
Fails with: db_1 | Error: Database is uninitialized and superuser password is not specified. db_1 | You must specify POSTGRES_PASSWORD for the superuser. Use db_1 | "-e POSTGRES_PASSWORD=password" to set it in "docker run". db_1 | db_1 | You may also use POSTGRES_HOST_AUTH_METHOD=trust to allow all connections db_1 | without a password. This is *not* recommended. See PostgreSQL db_1 | documentation about "trust": db_1 | https://www.postgresql.org/docs/current/auth-trust.html Appears to be related to docker-library/postgres#681
Fails with: db_1 | Error: Database is uninitialized and superuser password is not specified. db_1 | You must specify POSTGRES_PASSWORD for the superuser. Use db_1 | "-e POSTGRES_PASSWORD=password" to set it in "docker run". db_1 | db_1 | You may also use POSTGRES_HOST_AUTH_METHOD=trust to allow all connections db_1 | without a password. This is *not* recommended. See PostgreSQL db_1 | documentation about "trust": db_1 | https://www.postgresql.org/docs/current/auth-trust.html Appears to be related to docker-library/postgres#681
Fails with: db_1 | Error: Database is uninitialized and superuser password is not specified. db_1 | You must specify POSTGRES_PASSWORD for the superuser. Use db_1 | "-e POSTGRES_PASSWORD=password" to set it in "docker run". db_1 | db_1 | You may also use POSTGRES_HOST_AUTH_METHOD=trust to allow all connections db_1 | without a password. This is *not* recommended. See PostgreSQL db_1 | documentation about "trust": db_1 | https://www.postgresql.org/docs/current/auth-trust.html Appears to be related to docker-library/postgres#681
Fails with: db_1 | Error: Database is uninitialized and superuser password is not specified. db_1 | You must specify POSTGRES_PASSWORD for the superuser. Use db_1 | "-e POSTGRES_PASSWORD=password" to set it in "docker run". db_1 | db_1 | You may also use POSTGRES_HOST_AUTH_METHOD=trust to allow all connections db_1 | without a password. This is *not* recommended. See PostgreSQL db_1 | documentation about "trust": db_1 | https://www.postgresql.org/docs/current/auth-trust.html Appears to be related to docker-library/postgres#681
Fails with: db_1 | Error: Database is uninitialized and superuser password is not specified. db_1 | You must specify POSTGRES_PASSWORD for the superuser. Use db_1 | "-e POSTGRES_PASSWORD=password" to set it in "docker run". db_1 | db_1 | You may also use POSTGRES_HOST_AUTH_METHOD=trust to allow all connections db_1 | without a password. This is *not* recommended. See PostgreSQL db_1 | documentation about "trust": db_1 | https://www.postgresql.org/docs/current/auth-trust.html Appears to be related to docker-library/postgres#681
Fails with: db_1 | Error: Database is uninitialized and superuser password is not specified. db_1 | You must specify POSTGRES_PASSWORD for the superuser. Use db_1 | "-e POSTGRES_PASSWORD=password" to set it in "docker run". db_1 | db_1 | You may also use POSTGRES_HOST_AUTH_METHOD=trust to allow all connections db_1 | without a password. This is *not* recommended. See PostgreSQL db_1 | documentation about "trust": db_1 | https://www.postgresql.org/docs/current/auth-trust.html Appears to be related to docker-library/postgres#681
Fails with: db_1 | Error: Database is uninitialized and superuser password is not specified. db_1 | You must specify POSTGRES_PASSWORD for the superuser. Use db_1 | "-e POSTGRES_PASSWORD=password" to set it in "docker run". db_1 | db_1 | You may also use POSTGRES_HOST_AUTH_METHOD=trust to allow all connections db_1 | without a password. This is *not* recommended. See PostgreSQL db_1 | documentation about "trust": db_1 | https://www.postgresql.org/docs/current/auth-trust.html Appears to be related to docker-library/postgres#681
Postgres added a password requirement in a bug fix update. See docker-library/postgres#681 Also running migrate before upgrade fails for me.
Postgres added a password requirement in a bug fix update. See docker-library/postgres#681
Fails with: db_1 | Error: Database is uninitialized and superuser password is not specified. db_1 | You must specify POSTGRES_PASSWORD for the superuser. Use db_1 | "-e POSTGRES_PASSWORD=password" to set it in "docker run". db_1 | db_1 | You may also use POSTGRES_HOST_AUTH_METHOD=trust to allow all connections db_1 | without a password. This is *not* recommended. See PostgreSQL db_1 | documentation about "trust": db_1 | https://www.postgresql.org/docs/current/auth-trust.html Appears to be related to docker-library/postgres#681
I solved my issue using below: |
Version 9.6.17 contains breaking change and database initialization fails. docker-library/postgres#681 (cherry picked from commit 47083e1)
Postgres added a password requirement in a bug fix update. See docker-library/postgres#681
When running
docker run --rm postgres:9.5.20-alpine
, the database successfully starts up, but withdocker run --rm postgres:9.5.21-alpine
, I get this output instead:Is this an expected change?
The text was updated successfully, but these errors were encountered: