TeamSpeak-Systems / teamspeak-linux-docker-images

docker build files for TeamSpeak servers
Other
116 stars 56 forks source link

Error Using Docker Secrets #50

Closed patrickbaber closed 4 years ago

patrickbaber commented 4 years ago

I saw that the entrypoint script is prepared for the usage of Docker Secrets: https://github.com/TeamSpeak-Systems/teamspeak-linux-docker-images/blob/master/alpine/entrypoint.sh#L15-L42

But using it, causes an error in the container startup:

/opt/ts3server/entrypoint.sh: unset: line 40: /run/secrets/mysql_user: bad variable name

My docker-compose.yml looks like this:

version: "3.7"

services:
  teamspeak:
    image: teamspeak:3.11
    ports:
      - 9987:9987/udp
      - 10011:10011
      - 30033:30033
    environment:
      TS3SERVER_DB_PLUGIN: ts3db_mariadb
      TS3SERVER_DB_SQLCREATEPATH: create_mariadb
      TS3SERVER_DB_HOST: mysql
      TS3SERVER_DB_NAME_FILE: /run/secrets/mysql_database
      TS3SERVER_DB_USER_FILE: /run/secrets/mysql_user
      TS3SERVER_DB_PASSWORD_FILE: /run/secrets/mysql_password
      TS3SERVER_DB_WAITUNTILREADY: 30
      TS3SERVER_LICENSE: accept
    secrets:
      - mysql_root_password
      - mysql_database
      - mysql_user
      - mysql_password
  mysql:
    image: mariadb:10.4
    environment:
      MYSQL_ROOT_PASSWORD_FILE: /run/secrets/mysql_root_password
      MYSQL_DATABASE_FILE: /run/secrets/mysql_database
      MYSQL_USER_FILE: /run/secrets/mysql_user
      MYSQL_PASSWORD_FILE: /run/secrets/mysql_password
    secrets:
      - mysql_root_password
      - mysql_database
      - mysql_user
      - mysql_password

secrets:
  mysql_root_password:
    file: ./secrets/mysql_root_password
  mysql_database:
    file: ./secrets/mysql_database
  mysql_user:
    file: ./secrets/mysql_user
  mysql_password:
    file: ./secrets/mysql_password
patrickbaber commented 4 years ago

Because I don't want to save the secrets in the version control, I'm using env_file in the compose file as a workaround:

version: "3.7"

services:
  teamspeak:
    image: teamspeak:3.11
    [...]
    env_file: ${ENV_FILE}
daisukixci commented 4 years ago

Made a PR that fix it https://github.com/TeamSpeak-Systems/teamspeak-linux-docker-images/pull/53

r15ch13 commented 4 years ago

The latest, 3.12.0 and 3.12.1 images on Docker Hub still fail with this error.

daisukixci commented 4 years ago

It seems build have not been triggered https://hub.docker.com/_/teamspeak?tab=tags since the last update is 2 days older than the merge

patrickbaber commented 4 years ago

As @r15ch13 wrote the current images still fail with the message:

/opt/ts3server/entrypoint.sh: unset: line 40: /run/secrets/mysql_user: bad variable name