Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Docker-compose timezone#1245

cheatmenot started this conversation inGeneral
Discussion options

version: "3.7"services:  postgres:    image: postgres:11.5    container_name: postgres    environment:      - TZ=Singapore      - POSTGRES_USER=alona      - POSTGRES_PASSWORD=alona      - POSTGRES_DB=alona    ports:      - "5432:5432"

I have tried this docker-compose script above but still the timezone is default.
I run the commands SELECT now(); and SHOW timezone;
Please help, thanks!

You must be logged in to vote

Replies: 8 comments

Comment options

TZ uses a specific format that's usually<region>/<country> or<country>/<state>
So make itTZ=Asia/Singapore
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

$docker run -d --rm -e TZ=Asia/Singapore --name postgres postgres40df8a60139036a6ba8bbaa94b5ec9f4acbdbd2c8c30dce828b5286fd565c7c5$dockerexec -it postgres psql -U postgrespsql (12.0 (Debian 12.0-2.pgdg100+1))Type "help" for help.postgres=# show timezone;    TimeZone---------------- Asia/Singapore(1 row)
You must be logged in to vote
0 replies
Comment options

I have changed it onTZ=Asia/Singapore, it is sure did run on your example, but it won't when you use the docker-compose file.

version: "3.7"services:  postgres:    image: postgres:11.5    container_name: postgres    environment:      - TZ=Asia/Singapore      - POSTGRES_USER=alona      - POSTGRES_PASSWORD=alona      - POSTGRES_DB=alona    ports:      - "5432:5432"$ docker-compose -f docker-compose.yml up$ docker exec -it postgres psql -U alonaalona=# show timezone; TimeZone ---------- Etc/UTC(1 row)
You must be logged in to vote
0 replies
Comment options

Looks like you had an existing installation in your container, did you remove the previous container or just stop it?

$docker-compose up -dCreating postgres ... done$docker-compose logs -fAttaching to postgrespostgres    | The files belonging to this database system will be owned by user "postgres".postgres    | This user must also own the server process.postgres    |postgres    | The database cluster will be initialized with locale "en_US.utf8".postgres    | The default database encoding has accordingly been set to "UTF8".postgres    | The default text search configuration will be set to "english".postgres    |postgres    | Data page checksums are disabled.postgres    |postgres    | fixing permissions on existing directory /var/lib/postgresql/data ... okpostgres    | creating subdirectories ... okpostgres    | selecting default max_connections ... 100postgres    | selecting default shared_buffers ... 128MBpostgres    | selecting default timezone ... Asia/Singaporepostgres    | selecting dynamic shared memory implementation ... posixpostgres    | creating configuration files ... okpostgres    | running bootstrap script ... okpostgres    | performing post-bootstrap initialization ... okpostgres    | syncing data to disk ... okpostgres    |postgres    | Success. You can now start the database server using:postgres    |postgres    |     pg_ctl -D /var/lib/postgresql/data -l logfile startpostgres    |postgres    |postgres    | WARNING: enabling "trust" authentication for local connectionspostgres    | You can change this by editing pg_hba.conf or using the option -A, orpostgres    | --auth-local and --auth-host, the next time you run initdb.postgres    | waiting for server to start....2019-11-27 01:08:20.431 +08 [43] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"postgres    | 2019-11-27 01:08:20.700 +08 [44] LOG:  database system was shut down at 2019-11-27 01:08:15 +08postgres    | 2019-11-27 01:08:21.030 +08 [43] LOG:  database system is ready to accept connectionspostgres    |  donepostgres    | server startedpostgres    | CREATE DATABASEpostgres    |postgres    |postgres    | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*postgres    |postgres    | 2019-11-27 01:08:26.130 +08 [43] LOG:  received fast shutdown requestpostgres    | waiting for server to shut down....2019-11-27 01:08:26.180 +08 [43] LOG:  aborting any active transactionspostgres    | 2019-11-27 01:08:26.185 +08 [43] LOG:  background worker "logical replication launcher" (PID 50) exited with exit code 1postgres    | 2019-11-27 01:08:26.186 +08 [45] LOG:  shutting downpostgres    | 2019-11-27 01:08:26.500 +08 [43] LOG:  database system is shut downpostgres    |  donepostgres    | server stoppedpostgres    |postgres    | PostgreSQL init process complete; ready for start up.postgres    |postgres    | 2019-11-27 01:08:26.610 +08 [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432postgres    | 2019-11-27 01:08:26.610 +08 [1] LOG:  listening on IPv6 address "::", port 5432postgres    | 2019-11-27 01:08:26.702 +08 [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"postgres    | 2019-11-27 01:08:26.876 +08 [61] LOG:  database system was shut down at 2019-11-27 01:08:26 +08postgres    | 2019-11-27 01:08:26.929 +08 [1] LOG:  database system is ready to accept connections^CERROR: Aborting.$dockerexec -it postgres psql -U alonapsql (11.5 (Debian 11.5-3.pgdg90+1))Type "help" for help.alona=# show timezone;    TimeZone---------------- Asia/Singapore(1 row)
You must be logged in to vote
0 replies
Comment options

yeah I did down and remove my previous container using

docker-compose -f docker-compose.yml downdocker sytem prune --volumes

its really weird, still the timezone is ETC/UTC, anyway thank you, will try on other machines cause currently I'm on Ubuntu Linux

You must be logged in to vote
0 replies
Comment options

Hello,@cheatmenot:
Did you set the time zone with your docker-compose file? I had the same problem, but I set the time zone with "ALTER DATABASE postgres_db SET TIMEZONE TO 'America/Lima';"

You must be logged in to vote
0 replies
Comment options

@LuisLuyo

You need to set as environment variable in compose file like below TZ for the host and PGTZ for postress.

Capture

for different time zone of PGTZ pls ref
https://www.postgresql.org/docs/9.5/datatype-datetime.html#DATATYPE-TIMEZONES

You must be logged in to vote
0 replies
Comment options

Steps to change thetimezone in postgres docker image

  1. Ensure you have the following in yourdocker-compose.yml file:

    version:'3.8'services:postgres:image:postgresenvironment:      -TZ=Asia/Kolkata      -PGTZ=Asia/Kolkatavolumes:      -/etc/localtime:/etc/localtime:ro      -/etc/timezone:/etc/timezone:ro
  2. Rebuild the Docker image using the following commands:

    docker-compose builddocker-compose up -d

    or

    docker-compose up --build -d
    • The first commanddocker-compose build builds the Docker image.
    • The second commanddocker-compose up -d starts the services in detached mode.
    • Alternatively, you can usedocker-compose up --build -d to build and start the services in one command.
You must be logged in to vote
0 replies
Comment options

It doesn't matter if theTZ andPGTZ environment variables exist, if you have mapped thepostgresql.conf file between the host and the container, thetimezone setting defined inpostgresql.conf will prevail.

You must be logged in to vote
0 replies
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Category
General
Labels
None yet
6 participants
@cheatmenot@eduardoaw@wglambert@LuisLuyo@gany1up@ShebinSp
Converted from issue

This discussion was converted from issue #641 on May 31, 2024 18:05.


[8]ページ先頭

©2009-2025 Movatter.jp