The 29-year-old, who had been without a club after leaving English outfit Barnet in the summer, had been training with the Scottish side over the last few weeks.
Dundee boss John Brown told the club's official website: "There has been a lot of doubters about Craig recently but I really believe in the player. A fit Craig Beattie will cause havoc for our opponents throughout the season.
"He has proven that in the past, when he played at the highest level, and he will again, I'm sure of that."
Beattie has scored once in seven caps for Scotland.